Sat Jan 6 13:18:10 UTC 2024 I: starting to build ironic/bookworm/armhf on jenkins on '2024-01-06 13:17' Sat Jan 6 13:18:10 UTC 2024 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/armhf_32/8101/console.log Sat Jan 6 13:18:11 UTC 2024 I: Downloading source for bookworm/ironic=1:21.1.0-3 --2024-01-06 13:18:11-- http://cdn-fastly.deb.debian.org/debian/pool/main/i/ironic/ironic_21.1.0-3.dsc Connecting to 78.137.99.97:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 4030 (3.9K) [text/prs.lines.tag] Saving to: ‘ironic_21.1.0-3.dsc’ 0K ... 100% 457M=0s 2024-01-06 13:18:11 (457 MB/s) - ‘ironic_21.1.0-3.dsc’ saved [4030/4030] Sat Jan 6 13:18:11 UTC 2024 I: ironic_21.1.0-3.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 3.0 (quilt) Source: ironic Binary: ironic-api, ironic-common, ironic-conductor, ironic-doc, python3-ironic Architecture: all Version: 1:21.1.0-3 Maintainer: Debian OpenStack Uploaders: Thomas Goirand , Michal Arbet , Homepage: https://github.com/openstack/ironic Standards-Version: 4.4.1 Vcs-Browser: https://salsa.debian.org/openstack-team/services/ironic Vcs-Git: https://salsa.debian.org/openstack-team/services/ironic.git Testsuite: autopkgtest Testsuite-Triggers: @builddeps@ Build-Depends: debhelper-compat (= 10), dh-python, openstack-pkg-tools (>= 123~), po-debconf, python3-all, python3-pbr, python3-setuptools, python3-sphinx Build-Depends-Indep: alembic, python3-amqplib, python3-automaton, python3-bashate, python3-cinderclient, python3-coverage, python3-ddt, python3-doc8, python3-dracclient, python3-eventlet, python3-fixtures, python3-futurist, python3-glanceclient, python3-hacking, python3-ironic-inspector-client, python3-ironic-lib (>= 4.6.1), python3-iso8601, python3-jinja2 (>= 3.0.0), python3-jsonpatch, python3-jsonschema, python3-keystoneauth1, python3-keystonemiddleware (>= 9.5.0), python3-mysqldb, python3-openstackdocstheme , python3-openstacksdk, python3-os-api-ref, python3-os-traits, python3-oslo.concurrency, python3-oslo.config, python3-oslo.context, python3-oslo.db (>= 9.1.0), python3-oslo.log, python3-oslo.messaging, python3-oslo.middleware, python3-oslo.policy (>= 3.7.0), python3-oslo.reports, python3-oslo.rootwrap, python3-oslo.serialization, python3-oslo.service, python3-oslo.upgradecheck (>= 1.3.0), python3-oslo.utils, python3-oslo.versionedobjects, python3-oslotest, python3-osprofiler, python3-pecan, python3-pil, python3-proliantutils (>= 2.13.0), python3-psutil, python3-psycopg2, python3-pycdlib, python3-pyghmi, python3-pygments, python3-pymysql, python3-pysnmp4, python3-requests, python3-tenacity, python3-rfc3986, python3-scciclient (>= 0.12.2), python3-sphinxcontrib-pecanwsme , python3-sphinxcontrib.apidoc , python3-sphinxcontrib.seqdiag , python3-sphinxcontrib.svg2pdfconverter , python3-sqlalchemy, python3-stestr, python3-stevedore, python3-sushy (>= 4.3.0), python3-swiftclient, python3-testtools, python3-tooz, python3-tz, python3-webob, python3-webtest Build-Conflicts: python-pysqlite2 Package-List: ironic-api deb net optional arch=all ironic-common deb net optional arch=all ironic-conductor deb net optional arch=all ironic-doc deb doc optional arch=all profile=!nodoc python3-ironic deb python optional arch=all Checksums-Sha1: 214c2f489e716104c829d4b79ee86f171cc1da5e 1505820 ironic_21.1.0.orig.tar.xz 58651bb4e7a776c074b03bde61ab2ffe85d6a6c2 16452 ironic_21.1.0-3.debian.tar.xz Checksums-Sha256: f1440eb42de5619799844a57b243173fe933b5617d9dc35105c203e85bb5630b 1505820 ironic_21.1.0.orig.tar.xz 09576a541d355b8661894fc13cc94d503aee21bf60e17c176e11482b104890a8 16452 ironic_21.1.0-3.debian.tar.xz Files: f6f9a3db7286ed06e564f6c7fe0643ba 1505820 ironic_21.1.0.orig.tar.xz f5c4be2f42e9c97a66bb271d3280ad09 16452 ironic_21.1.0-3.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEoLGp81CJVhMOekJc1BatFaxrQ/4FAmQ5PzAACgkQ1BatFaxr Q/6QYg/+NSXeuUvp7n9vVh1/9CUO8Ahyz7dw4MnBjhqho3NUNGHdVGOZ8gF4V85W iUjz3l4naAU8yxq3JOAHmV9Z8u+0ueZqODGUyZCd1EN0zSm0094PaXY1PfL+SHBr 2hOtBmIbUn/SVBjHxxVusRZhpTus8E3R77i9+0RgngcEOiNiIrzMI3GwgMg0JOqa Z2tMbboylklXIB/MybFFyufwnMy5kEd/5QID5to8wtvz57INjgf8qYIiA1wZUuKL Do0GZOeJxOtvaOarTBySkdjmcqkQIFi3Ne3dOuZiDmETO/9TqthGBAeXQjEDXxv8 AIQiTMMTa40tRsBpjyw/GVc+6HKK7q1ohW7pdjX7pi7Ozve1WlClFjFTwxo01+0Q RCj7S4nZoRJK1d9Y3nwF5x+hnrIm48BMIuKfgrrR0Hg8xlZmOMuFRj1p2Y+tnrwk J8ZFPLRB4Kt+dD/iPHMWwikZpZ3LKvw08ewX/dcoOxvfZIQkHfy+OMedho6AEeFn pzFI1nI9pFeLMv4C/CDinbNoQIbaJp1NV20r/gVCvCn4SKI3X3DwbLkQKssZhkE3 fm8mC7g+z+77WxgJseOXHn2Xr5P+enkDuYFFY6xBw2DTLhkAlyAmgA3UGftHZGT9 qxK/TxQAtbRhrCPBQ7N1z+TCnnXw1KzJvEbrzOmDsOmFvsaXoyw= =uwoc -----END PGP SIGNATURE----- Sat Jan 6 13:18:11 UTC 2024 I: Checking whether the package is not for us Sat Jan 6 13:18:11 UTC 2024 I: Starting 1st build on remote node virt64c-armhf-rb.debian.net. Sat Jan 6 13:18:11 UTC 2024 I: Preparing to do remote build '1' on virt64c-armhf-rb.debian.net. Sat Jan 6 14:02:50 UTC 2024 I: Deleting $TMPDIR on virt64c-armhf-rb.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Sat Jan 6 01:18:18 -12 2024 I: pbuilder-time-stamp: 1704547098 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [ironic_21.1.0-3.dsc] I: copying [./ironic_21.1.0.orig.tar.xz] I: copying [./ironic_21.1.0-3.debian.tar.xz] I: Extracting source gpgv: Signature made Fri Apr 14 11:55:28 2023 gpgv: using RSA key A0B1A9F3508956130E7A425CD416AD15AC6B43FE gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./ironic_21.1.0-3.dsc: no acceptable signature found dpkg-source: info: extracting ironic in ironic-21.1.0 dpkg-source: info: unpacking ironic_21.1.0.orig.tar.xz dpkg-source: info: unpacking ironic_21.1.0-3.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying adds-alembic.ini-in-MANIFEST.in.patch 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/15078/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='armhf' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' DISTRIBUTION='bookworm' HOME='/root' HOST_ARCH='armhf' IFS=' ' INVOCATION_ID='f0a242019440488784fb6598ede60947' 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='15078' PS1='# ' PS2='> ' 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.aem6cFeL/pbuilderrc_ff2z --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.aem6cFeL/b1 --logfile b1/build.log ironic_21.1.0-3.dsc' SUDO_GID='113' SUDO_UID='107' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://10.0.0.15:3142/' I: uname -a Linux virt64c 6.1.0-17-arm64 #1 SMP Debian 6.1.69-1 (2023-12-30) aarch64 GNU/Linux I: ls -l /bin total 4964 -rwxr-xr-x 1 root root 838488 Apr 23 2023 bash -rwxr-xr-x 3 root root 67144 Sep 19 2022 bunzip2 -rwxr-xr-x 3 root root 67144 Sep 19 2022 bzcat lrwxrwxrwx 1 root root 6 Sep 19 2022 bzcmp -> bzdiff -rwxr-xr-x 1 root root 2225 Sep 19 2022 bzdiff lrwxrwxrwx 1 root root 6 Sep 19 2022 bzegrep -> bzgrep -rwxr-xr-x 1 root root 4893 Nov 27 2021 bzexe lrwxrwxrwx 1 root root 6 Sep 19 2022 bzfgrep -> bzgrep -rwxr-xr-x 1 root root 3775 Sep 19 2022 bzgrep -rwxr-xr-x 3 root root 67144 Sep 19 2022 bzip2 -rwxr-xr-x 1 root root 67112 Sep 19 2022 bzip2recover lrwxrwxrwx 1 root root 6 Sep 19 2022 bzless -> bzmore -rwxr-xr-x 1 root root 1297 Sep 19 2022 bzmore -rwxr-xr-x 1 root root 67632 Sep 20 2022 cat -rwxr-xr-x 1 root root 67676 Sep 20 2022 chgrp -rwxr-xr-x 1 root root 67644 Sep 20 2022 chmod -rwxr-xr-x 1 root root 67684 Sep 20 2022 chown -rwxr-xr-x 1 root root 133532 Sep 20 2022 cp -rwxr-xr-x 1 root root 132868 Jan 5 2023 dash -rwxr-xr-x 1 root root 133220 Sep 20 2022 date -rwxr-xr-x 1 root root 67732 Sep 20 2022 dd -rwxr-xr-x 1 root root 68104 Sep 20 2022 df -rwxr-xr-x 1 root root 133632 Sep 20 2022 dir -rwxr-xr-x 1 root root 59128 Mar 23 2023 dmesg lrwxrwxrwx 1 root root 8 Dec 19 2022 dnsdomainname -> hostname lrwxrwxrwx 1 root root 8 Dec 19 2022 domainname -> hostname -rwxr-xr-x 1 root root 67560 Sep 20 2022 echo -rwxr-xr-x 1 root root 41 Jan 24 2023 egrep -rwxr-xr-x 1 root root 67548 Sep 20 2022 false -rwxr-xr-x 1 root root 41 Jan 24 2023 fgrep -rwxr-xr-x 1 root root 55748 Mar 23 2023 findmnt -rwsr-xr-x 1 root root 26208 Mar 23 2023 fusermount -rwxr-xr-x 1 root root 128608 Jan 24 2023 grep -rwxr-xr-x 2 root root 2346 Apr 10 2022 gunzip -rwxr-xr-x 1 root root 6447 Apr 10 2022 gzexe -rwxr-xr-x 1 root root 64220 Apr 10 2022 gzip -rwxr-xr-x 1 root root 67032 Dec 19 2022 hostname -rwxr-xr-x 1 root root 67720 Sep 20 2022 ln -rwxr-xr-x 1 root root 35132 Mar 23 2023 login -rwxr-xr-x 1 root root 133632 Sep 20 2022 ls -rwxr-xr-x 1 root root 136808 Mar 23 2023 lsblk -rwxr-xr-x 1 root root 67800 Sep 20 2022 mkdir -rwxr-xr-x 1 root root 67764 Sep 20 2022 mknod -rwxr-xr-x 1 root root 67596 Sep 20 2022 mktemp -rwxr-xr-x 1 root root 38504 Mar 23 2023 more -rwsr-xr-x 1 root root 38496 Mar 23 2023 mount -rwxr-xr-x 1 root root 9824 Mar 23 2023 mountpoint -rwxr-xr-x 1 root root 133532 Sep 20 2022 mv lrwxrwxrwx 1 root root 8 Dec 19 2022 nisdomainname -> hostname lrwxrwxrwx 1 root root 14 Apr 3 2023 pidof -> /sbin/killall5 -rwxr-xr-x 1 root root 67608 Sep 20 2022 pwd lrwxrwxrwx 1 root root 4 Apr 23 2023 rbash -> bash -rwxr-xr-x 1 root root 67600 Sep 20 2022 readlink -rwxr-xr-x 1 root root 67672 Sep 20 2022 rm -rwxr-xr-x 1 root root 67600 Sep 20 2022 rmdir -rwxr-xr-x 1 root root 14152 Jul 28 23:46 run-parts -rwxr-xr-x 1 root root 133372 Jan 5 2023 sed lrwxrwxrwx 1 root root 4 Jan 5 2023 sh -> dash -rwxr-xr-x 1 root root 67584 Sep 20 2022 sleep -rwxr-xr-x 1 root root 67644 Sep 20 2022 stty -rwsr-xr-x 1 root root 50800 Mar 23 2023 su -rwxr-xr-x 1 root root 67584 Sep 20 2022 sync -rwxr-xr-x 1 root root 336764 Apr 6 2023 tar -rwxr-xr-x 1 root root 9800 Jul 28 23:46 tempfile -rwxr-xr-x 1 root root 133224 Sep 20 2022 touch -rwxr-xr-x 1 root root 67548 Sep 20 2022 true -rwxr-xr-x 1 root root 9768 Mar 23 2023 ulockmgr_server -rwsr-xr-x 1 root root 22108 Mar 23 2023 umount -rwxr-xr-x 1 root root 67572 Sep 20 2022 uname -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress -rwxr-xr-x 1 root root 133632 Sep 20 2022 vdir -rwxr-xr-x 1 root root 42608 Mar 23 2023 wdctl lrwxrwxrwx 1 root root 8 Dec 19 2022 ypdomainname -> hostname -rwxr-xr-x 1 root root 1984 Apr 10 2022 zcat -rwxr-xr-x 1 root root 1678 Apr 10 2022 zcmp -rwxr-xr-x 1 root root 6460 Apr 10 2022 zdiff -rwxr-xr-x 1 root root 29 Apr 10 2022 zegrep -rwxr-xr-x 1 root root 29 Apr 10 2022 zfgrep -rwxr-xr-x 1 root root 2081 Apr 10 2022 zforce -rwxr-xr-x 1 root root 8103 Apr 10 2022 zgrep -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/15078/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: armhf Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 10), dh-python, openstack-pkg-tools (>= 123~), po-debconf, python3-all, python3-pbr, python3-setuptools, python3-sphinx, alembic, python3-amqplib, python3-automaton, python3-bashate, python3-cinderclient, python3-coverage, python3-ddt, python3-doc8, python3-dracclient, python3-eventlet, python3-fixtures, python3-futurist, python3-glanceclient, python3-hacking, python3-ironic-inspector-client, python3-ironic-lib (>= 4.6.1), python3-iso8601, python3-jinja2 (>= 3.0.0), python3-jsonpatch, python3-jsonschema, python3-keystoneauth1, python3-keystonemiddleware (>= 9.5.0), python3-mysqldb, python3-openstackdocstheme, python3-openstacksdk, python3-os-api-ref, python3-os-traits, python3-oslo.concurrency, python3-oslo.config, python3-oslo.context, python3-oslo.db (>= 9.1.0), python3-oslo.log, python3-oslo.messaging, python3-oslo.middleware, python3-oslo.policy (>= 3.7.0), python3-oslo.reports, python3-oslo.rootwrap, python3-oslo.serialization, python3-oslo.service, python3-oslo.upgradecheck (>= 1.3.0), python3-oslo.utils, python3-oslo.versionedobjects, python3-oslotest, python3-osprofiler, python3-pecan, python3-pil, python3-proliantutils (>= 2.13.0), python3-psutil, python3-psycopg2, python3-pycdlib, python3-pyghmi, python3-pygments, python3-pymysql, python3-pysnmp4, python3-requests, python3-tenacity, python3-rfc3986, python3-scciclient (>= 0.12.2), python3-sphinxcontrib-pecanwsme, python3-sphinxcontrib.apidoc, python3-sphinxcontrib.seqdiag, python3-sphinxcontrib.svg2pdfconverter, python3-sqlalchemy, python3-stestr, python3-stevedore, python3-sushy (>= 4.3.0), python3-swiftclient, python3-testtools, python3-tooz, python3-tz, python3-webob, python3-webtest Conflicts: python-pysqlite2 dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 17881 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 10); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on dh-python; however: Package dh-python is not installed. pbuilder-satisfydepends-dummy depends on openstack-pkg-tools (>= 123~); however: Package openstack-pkg-tools is not installed. pbuilder-satisfydepends-dummy depends on po-debconf; however: Package po-debconf is not installed. pbuilder-satisfydepends-dummy depends on python3-all; however: Package python3-all is not installed. pbuilder-satisfydepends-dummy depends on python3-pbr; however: Package python3-pbr is not installed. pbuilder-satisfydepends-dummy depends on python3-setuptools; however: Package python3-setuptools is not installed. pbuilder-satisfydepends-dummy depends on python3-sphinx; however: Package python3-sphinx is not installed. pbuilder-satisfydepends-dummy depends on alembic; however: Package alembic is not installed. pbuilder-satisfydepends-dummy depends on python3-amqplib; however: Package python3-amqplib is not installed. pbuilder-satisfydepends-dummy depends on python3-automaton; however: Package python3-automaton is not installed. pbuilder-satisfydepends-dummy depends on python3-bashate; however: Package python3-bashate is not installed. pbuilder-satisfydepends-dummy depends on python3-cinderclient; however: Package python3-cinderclient is not installed. pbuilder-satisfydepends-dummy depends on python3-coverage; however: Package python3-coverage is not installed. pbuilder-satisfydepends-dummy depends on python3-ddt; however: Package python3-ddt is not installed. pbuilder-satisfydepends-dummy depends on python3-doc8; however: Package python3-doc8 is not installed. pbuilder-satisfydepends-dummy depends on python3-dracclient; however: Package python3-dracclient is not installed. pbuilder-satisfydepends-dummy depends on python3-eventlet; however: Package python3-eventlet is not installed. pbuilder-satisfydepends-dummy depends on python3-fixtures; however: Package python3-fixtures is not installed. pbuilder-satisfydepends-dummy depends on python3-futurist; however: Package python3-futurist is not installed. pbuilder-satisfydepends-dummy depends on python3-glanceclient; however: Package python3-glanceclient is not installed. pbuilder-satisfydepends-dummy depends on python3-hacking; however: Package python3-hacking is not installed. pbuilder-satisfydepends-dummy depends on python3-ironic-inspector-client; however: Package python3-ironic-inspector-client is not installed. pbuilder-satisfydepends-dummy depends on python3-ironic-lib (>= 4.6.1); however: Package python3-ironic-lib is not installed. pbuilder-satisfydepends-dummy depends on python3-iso8601; however: Package python3-iso8601 is not installed. pbuilder-satisfydepends-dummy depends on python3-jinja2 (>= 3.0.0); however: Package python3-jinja2 is not installed. pbuilder-satisfydepends-dummy depends on python3-jsonpatch; however: Package python3-jsonpatch is not installed. pbuilder-satisfydepends-dummy depends on python3-jsonschema; however: Package python3-jsonschema is not installed. pbuilder-satisfydepends-dummy depends on python3-keystoneauth1; however: Package python3-keystoneauth1 is not installed. pbuilder-satisfydepends-dummy depends on python3-keystonemiddleware (>= 9.5.0); however: Package python3-keystonemiddleware is not installed. pbuilder-satisfydepends-dummy depends on python3-mysqldb; however: Package python3-mysqldb is not installed. pbuilder-satisfydepends-dummy depends on python3-openstackdocstheme; however: Package python3-openstackdocstheme is not installed. pbuilder-satisfydepends-dummy depends on python3-openstacksdk; however: Package python3-openstacksdk is not installed. pbuilder-satisfydepends-dummy depends on python3-os-api-ref; however: Package python3-os-api-ref is not installed. pbuilder-satisfydepends-dummy depends on python3-os-traits; however: Package python3-os-traits is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.concurrency; however: Package python3-oslo.concurrency is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.config; however: Package python3-oslo.config is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.context; however: Package python3-oslo.context is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.db (>= 9.1.0); however: Package python3-oslo.db is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.log; however: Package python3-oslo.log is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.messaging; however: Package python3-oslo.messaging is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.middleware; however: Package python3-oslo.middleware is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.policy (>= 3.7.0); however: Package python3-oslo.policy is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.reports; however: Package python3-oslo.reports is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.rootwrap; however: Package python3-oslo.rootwrap is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.serialization; however: Package python3-oslo.serialization is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.service; however: Package python3-oslo.service is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.upgradecheck (>= 1.3.0); however: Package python3-oslo.upgradecheck is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.utils; however: Package python3-oslo.utils is not installed. pbuilder-satisfydepends-dummy depends on python3-oslo.versionedobjects; however: Package python3-oslo.versionedobjects is not installed. pbuilder-satisfydepends-dummy depends on python3-oslotest; however: Package python3-oslotest is not installed. pbuilder-satisfydepends-dummy depends on python3-osprofiler; however: Package python3-osprofiler is not installed. pbuilder-satisfydepends-dummy depends on python3-pecan; however: Package python3-pecan is not installed. pbuilder-satisfydepends-dummy depends on python3-pil; however: Package python3-pil is not installed. pbuilder-satisfydepends-dummy depends on python3-proliantutils (>= 2.13.0); however: Package python3-proliantutils is not installed. pbuilder-satisfydepends-dummy depends on python3-psutil; however: Package python3-psutil is not installed. pbuilder-satisfydepends-dummy depends on python3-psycopg2; however: Package python3-psycopg2 is not installed. pbuilder-satisfydepends-dummy depends on python3-pycdlib; however: Package python3-pycdlib is not installed. pbuilder-satisfydepends-dummy depends on python3-pyghmi; however: Package python3-pyghmi is not installed. pbuilder-satisfydepends-dummy depends on python3-pygments; however: Package python3-pygments is not installed. pbuilder-satisfydepends-dummy depends on python3-pymysql; however: Package python3-pymysql is not installed. pbuilder-satisfydepends-dummy depends on python3-pysnmp4; however: Package python3-pysnmp4 is not installed. pbuilder-satisfydepends-dummy depends on python3-requests; however: Package python3-requests is not installed. pbuilder-satisfydepends-dummy depends on python3-tenacity; however: Package python3-tenacity is not installed. pbuilder-satisfydepends-dummy depends on python3-rfc3986; however: Package python3-rfc3986 is not installed. pbuilder-satisfydepends-dummy depends on python3-scciclient (>= 0.12.2); however: Package python3-scciclient is not installed. pbuilder-satisfydepends-dummy depends on python3-sphinxcontrib-pecanwsme; however: Package python3-sphinxcontrib-pecanwsme is not installed. pbuilder-satisfydepends-dummy depends on python3-sphinxcontrib.apidoc; however: Package python3-sphinxcontrib.apidoc is not installed. pbuilder-satisfydepends-dummy depends on python3-sphinxcontrib.seqdiag; however: Package python3-sphinxcontrib.seqdiag is not installed. pbuilder-satisfydepends-dummy depends on python3-sphinxcontrib.svg2pdfconverter; however: Package python3-sphinxcontrib.svg2pdfconverter is not installed. pbuilder-satisfydepends-dummy depends on python3-sqlalchemy; however: Package python3-sqlalchemy is not installed. pbuilder-satisfydepends-dummy depends on python3-stestr; however: Package python3-stestr is not installed. pbuilder-satisfydepends-dummy depends on python3-stevedore; however: Package python3-stevedore is not installed. pbuilder-satisfydepends-dummy depends on python3-sushy (>= 4.3.0); however: Package python3-sushy is not installed. pbuilder-satisfydepends-dummy depends on python3-swiftclient; however: Package python3-swiftclient is not installed. pbuilder-satisfydepends-dummy depends on python3-testtools; however: Package python3-testtools is not installed. pbuilder-satisfydepends-dummy depends on python3-tooz; however: Package python3-tooz is not installed. pbuilder-satisfydepends-dummy depends on python3-tz; however: Package python3-tz is not installed. pbuilder-satisfydepends-dummy depends on python3-webob; however: Package python3-webob is not installed. pbuilder-satisfydepends-dummy depends on python3-webtest; however: Package python3-webtest is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: adwaita-icon-theme{a} alembic{a} at-spi2-common{a} autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} ca-certificates{a} dbus{a} dbus-bin{a} dbus-daemon{a} dbus-session-bus-common{a} dbus-system-bus-common{a} dbus-user-session{a} dconf-gsettings-backend{a} dconf-service{a} debhelper{a} dh-autoreconf{a} dh-python{a} dh-strip-nondeterminism{a} dictionaries-common{a} dmsetup{a} docutils-common{a} dwz{a} emacsen-common{a} file{a} flake8{a} fontconfig{a} fontconfig-config{a} fonts-dejavu-core{a} fonts-glyphicons-halflings{a} genisoimage{a} gettext{a} gettext-base{a} glib-networking{a} glib-networking-common{a} glib-networking-services{a} groff-base{a} gsettings-desktop-schemas{a} gtk-update-icon-cache{a} hicolor-icon-theme{a} hunspell-en-us{a} ieee-data{a} imagemagick-6-common{a} inkscape{a} intltool-debian{a} jq{a} lib2geom1.2.0{a} libabsl20220623{a} libaom3{a} libapparmor1{a} libarchive-zip-perl{a} libargon2-1{a} libaspell15{a} libatk-bridge2.0-0{a} libatk1.0-0{a} libatkmm-1.6-1v5{a} libatspi2.0-0{a} libavahi-client3{a} libavahi-common-data{a} libavahi-common3{a} libboost-filesystem1.74.0{a} libbrotli1{a} libbsd0{a} libc-ares2{a} libcairo-gobject2{a} libcairo2{a} libcairomm-1.0-1v5{a} libcdr-0.1-1{a} libcolord2{a} libcryptsetup12{a} libcups2{a} libdatrie1{a} libdav1d6{a} libdbus-1-3{a} libdconf1{a} libde265-0{a} libdebhelper-perl{a} libdeflate0{a} libdevmapper1.02.1{a} libdouble-conversion3{a} libelf1{a} libenchant-2-2{a} libepoxy0{a} libev4{a} libexpat1{a} libfdisk1{a} libfftw3-double3{a} libfile-stripnondeterminism-perl{a} libfontconfig1{a} libfreetype6{a} libfribidi0{a} libgc1{a} libgdk-pixbuf-2.0-0{a} libgdk-pixbuf2.0-common{a} libglib2.0-0{a} libglibmm-2.4-1v5{a} libgraphite2-3{a} libgsl27{a} libgslcblas0{a} libgspell-1-2{a} libgspell-1-common{a} libgtk-3-0{a} libgtk-3-common{a} libgtkmm-3.0-1v5{a} libharfbuzz0b{a} libheif1{a} libhunspell-1.7-0{a} libice6{a} libicu72{a} libimagequant0{a} libip4tc2{a} libjbig0{a} libjpeg62-turbo{a} libjq1{a} libjs-bootstrap{a} libjs-jquery{a} libjs-sphinxdoc{a} libjs-underscore{a} libjson-c5{a} libjson-perl{a} libkmod2{a} liblcms2-2{a} libldap-2.5-0{a} liblerc4{a} liblqr-1-0{a} libltdl7{a} libmagic-mgc{a} libmagic1{a} libmagick++-6.q16-8{a} libmagickcore-6.q16-6{a} libmagickwand-6.q16-6{a} libmariadb3{a} libnorm1{a} libnspr4{a} libnss3{a} libonig5{a} libopenjp2-7{a} libpam-systemd{a} libpango-1.0-0{a} libpangocairo-1.0-0{a} libpangoft2-1.0-0{a} libpangomm-1.4-1v5{a} libpgm-5.3-0{a} libpipeline1{a} libpixman-1-0{a} libpng16-16{a} libpoppler-glib8{a} libpoppler126{a} libpotrace0{a} libpq5{a} libproc2-0{a} libprotobuf32{a} libproxy1v5{a} libpsl5{a} libpython3-stdlib{a} libpython3.11-minimal{a} libpython3.11-stdlib{a} libraqm0{a} librdkafka1{a} libre2-9{a} libreadline8{a} librevenge-0.0-0{a} librsvg2-2{a} librsvg2-bin{a} librsvg2-common{a} libsasl2-2{a} libsasl2-modules-db{a} libsm6{a} libsodium23{a} libsoup2.4-1{a} libsoup2.4-common{a} libsub-override-perl{a} libsubunit-perl{a} libsystemd-shared{a} libtext-iconv-perl{a} libthai-data{a} libthai0{a} libtiff6{a} libtool{a} libuchardet0{a} libvisio-0.1-1{a} libwayland-client0{a} libwayland-cursor0{a} libwayland-egl1{a} libwebp7{a} libwebpdemux2{a} libwebpmux3{a} libwpd-0.10-10{a} libwpg-0.3-3{a} libx11-6{a} libx11-data{a} libx265-199{a} libxau6{a} libxcb-render0{a} libxcb-shm0{a} libxcb1{a} libxcomposite1{a} libxcursor1{a} libxdamage1{a} libxdmcp6{a} libxext6{a} libxfixes3{a} libxi6{a} libxinerama1{a} libxkbcommon0{a} libxml2{a} libxmu6{a} libxrandr2{a} libxrender1{a} libxslt1.1{a} libxt6{a} libyaml-0-2{a} libzmq5{a} lsb-release{a} m4{a} mailcap{a} man-db{a} mariadb-common{a} media-types{a} mime-support{a} mysql-common{a} netbase{a} openssl{a} openstack-pkg-tools{a} po-debconf{a} procps{a} pycadf-common{a} pyflakes3{a} python-babel-localedata{a} python-os-api-ref-common{a} python-oslosphinx-common{a} python-tinycss2-common{a} python3{a} python3-alabaster{a} python3-alembic{a} python3-all{a} python3-amqp{a} python3-amqplib{a} python3-anyjson{a} python3-appdirs{a} python3-async-timeout{a} python3-attr{a} python3-automaton{a} python3-autopage{a} python3-babel{a} python3-bashate{a} python3-bcrypt{a} python3-binary-memcached{a} python3-blinker{a} python3-blockdiag{a} python3-bs4{a} python3-cachetools{a} python3-cairocffi{a} python3-cairosvg{a} python3-certifi{a} python3-cffi{a} python3-cffi-backend{a} python3-chardet{a} python3-charset-normalizer{a} python3-cinderclient{a} python3-cliff{a} python3-cmd2{a} python3-confluent-kafka{a} python3-coverage{a} python3-cryptography{a} python3-cssselect2{a} python3-dateutil{a} python3-ddt{a} python3-debtcollector{a} python3-decorator{a} python3-defusedxml{a} python3-deprecated{a} python3-deprecation{a} python3-distutils{a} python3-dnspython{a} python3-doc8{a} python3-docutils{a} python3-dogpile.cache{a} python3-dracclient{a} python3-dulwich{a} python3-etcd3{a} python3-etcd3gw{a} python3-eventlet{a} python3-extras{a} python3-fasteners{a} python3-fixtures{a} python3-flake8{a} python3-funcparserlib{a} python3-future{a} python3-futurist{a} python3-gevent{a} python3-glanceclient{a} python3-greenlet{a} python3-grpcio{a} python3-hacking{a} python3-idna{a} python3-ifaddr{a} python3-imagesize{a} python3-importlib-metadata{a} python3-ironic-inspector-client{a} python3-ironic-lib{a} python3-iso8601{a} python3-jaraco.classes{a} python3-jeepney{a} python3-jinja2{a} python3-jmespath{a} python3-json-pointer{a} python3-jsonpatch{a} python3-jsonschema{a} python3-jwt{a} python3-kazoo{a} python3-kerberos{a} python3-keyring{a} python3-keystoneauth1{a} python3-keystoneclient{a} python3-keystonemiddleware{a} python3-kombu{a} python3-lib2to3{a} python3-logutils{a} python3-lxml{a} python3-mako{a} python3-markupsafe{a} python3-mccabe{a} python3-memcache{a} python3-migrate{a} python3-minimal{a} python3-monotonic{a} python3-more-itertools{a} python3-msgpack{a} python3-munch{a} python3-mysqldb{a} python3-netaddr{a} python3-netifaces{a} python3-oauthlib{a} python3-openssl{a} python3-openstackdocstheme{a} python3-openstacksdk{a} python3-os-api-ref{a} python3-os-client-config{a} python3-os-service-types{a} python3-os-traits{a} python3-osc-lib{a} python3-oslo.cache{a} python3-oslo.concurrency{a} python3-oslo.config{a} python3-oslo.context{a} python3-oslo.db{a} python3-oslo.i18n{a} python3-oslo.log{a} python3-oslo.messaging{a} python3-oslo.metrics{a} python3-oslo.middleware{a} python3-oslo.policy{a} python3-oslo.reports{a} python3-oslo.rootwrap{a} python3-oslo.serialization{a} python3-oslo.service{a} python3-oslo.upgradecheck{a} python3-oslo.utils{a} python3-oslo.versionedobjects{a} python3-oslosphinx{a} python3-oslotest{a} python3-osprofiler{a} python3-packaging{a} python3-paste{a} python3-pastedeploy{a} python3-pastedeploy-tpl{a} python3-pbr{a} python3-pecan{a} python3-pil{a} python3-pip{a} python3-pkg-resources{a} python3-ply{a} python3-prettytable{a} python3-proliantutils{a} python3-prometheus-client{a} python3-protobuf{a} python3-psutil{a} python3-psycopg2{a} python3-pure-sasl{a} python3-py{a} python3-pyasn1{a} python3-pycadf{a} python3-pycdlib{a} python3-pycodestyle{a} python3-pycparser{a} python3-pycryptodome{a} python3-pyflakes{a} python3-pyghmi{a} python3-pygments{a} python3-pyinotify{a} python3-pymemcache{a} python3-pymysql{a} python3-pyparsing{a} python3-pyperclip{a} python3-pyrsistent{a} python3-pysmi{a} python3-pysnmp4{a} python3-redis{a} python3-reportlab{a} python3-reportlab-accel{a} python3-repoze.lru{a} python3-requests{a} python3-requestsexceptions{a} python3-restructuredtext-lint{a} python3-retrying{a} python3-rfc3986{a} python3-roman{a} python3-routes{a} python3-scciclient{a} python3-secretstorage{a} python3-seqdiag{a} python3-setuptools{a} python3-simplegeneric{a} python3-simplejson{a} python3-singledispatch{a} python3-six{a} python3-snowballstemmer{a} python3-soupsieve{a} python3-sphinx{a} python3-sphinxcontrib-pecanwsme{a} python3-sphinxcontrib.apidoc{a} python3-sphinxcontrib.httpdomain{a} python3-sphinxcontrib.seqdiag{a} python3-sphinxcontrib.svg2pdfconverter{a} python3-sqlalchemy{a} python3-sqlparse{a} python3-statsd{a} python3-stestr{a} python3-stevedore{a} python3-subunit{a} python3-sushy{a} python3-swiftclient{a} python3-tempita{a} python3-tenacity{a} python3-testresources{a} python3-testscenarios{a} python3-testtools{a} python3-tinycss2{a} python3-tooz{a} python3-tz{a} python3-uhashring{a} python3-unittest2{a} python3-urllib3{a} python3-vine{a} python3-voluptuous{a} python3-waitress{a} python3-warlock{a} python3-wcwidth{a} python3-webcolors{a} python3-webencodings{a} python3-webob{a} python3-webtest{a} python3-wheel{a} python3-wrapt{a} python3-xcffib{a} python3-yaml{a} python3-yappi{a} python3-zake{a} python3-zeroconf{a} python3-zipp{a} python3-zmq{a} python3-zope.event{a} python3-zope.interface{a} python3.11{a} python3.11-minimal{a} readline-common{a} sensible-utils{a} sgml-base{a} shared-mime-info{a} sphinx-common{a} subunit{a} sudo{a} systemd{a} systemd-sysv{a} tzdata{a} wget{a} x11-common{a} xclip{a} xkb-data{a} xml-core{a} The following packages are RECOMMENDED but will NOT be installed: aspell aspell-am aspell-ar aspell-ar-large aspell-bg aspell-br aspell-ca aspell-cs aspell-cy aspell-da aspell-de aspell-de-1901 aspell-el aspell-en aspell-eo aspell-eo-cx7 aspell-es aspell-et aspell-eu aspell-fa aspell-fo aspell-fr aspell-ga aspell-gl-minimos aspell-he aspell-hr aspell-hsb aspell-hu aspell-hy aspell-is aspell-it aspell-kk aspell-ku aspell-lt aspell-lv aspell-nl aspell-no aspell-pl aspell-pt-br aspell-pt-pt aspell-ro aspell-ru aspell-sk aspell-sl aspell-sv aspell-tl aspell-uk aspell-uz at-spi2-core autopkgtest chrony enchant-2 fig2dev ghostscript gnome-keyring graphicsmagick-imagemagick-compat gsfonts imagemagick imagemagick-6.q16 javascript-common keepassxc libarchive-cpio-perl libgdk-pixbuf2.0-bin libglib2.0-data libgtk-3-bin libimage-magick-perl libjson-xs-perl libkf5wallet-bin libldap-common libltdl-dev libmail-sendmail-perl libnss-systemd libpaper-utils libsasl2-modules libwmf-bin madison-lite ntpsec openntpd poppler-data pristine-tar psmisc publicsuffix python3-cssselect python3-dev python3-fastimport python3-h2 python3-html5lib python3-httpx python3-numpy python3-olefile python3-pastescript python3-renderpm python3-requests-toolbelt python3-rfc3987 python3-scour python3-sqlalchemy-ext python3-uritemplate systemd-timesyncd xauth xdg-user-dirs 0 packages upgraded, 483 newly installed, 0 to remove and 0 not upgraded. Need to get 139 MB of archives. After unpacking 571 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian bookworm/main armhf libargon2-1 armhf 0~20171227-0.3+deb12u1 [19.6 kB] Get: 2 http://deb.debian.org/debian bookworm/main armhf dmsetup armhf 2:1.02.185-2 [81.9 kB] Get: 3 http://deb.debian.org/debian bookworm/main armhf libdevmapper1.02.1 armhf 2:1.02.185-2 [125 kB] Get: 4 http://deb.debian.org/debian bookworm/main armhf libjson-c5 armhf 0.16-2 [40.4 kB] Get: 5 http://deb.debian.org/debian bookworm/main armhf libcryptsetup12 armhf 2:2.6.1-4~deb12u1 [196 kB] Get: 6 http://deb.debian.org/debian bookworm/main armhf libfdisk1 armhf 2.38.1-5+b1 [178 kB] Get: 7 http://deb.debian.org/debian bookworm/main armhf libkmod2 armhf 30+20221128-1 [50.0 kB] Get: 8 http://deb.debian.org/debian bookworm/main armhf libapparmor1 armhf 3.0.8-3 [36.9 kB] Get: 9 http://deb.debian.org/debian bookworm/main armhf libip4tc2 armhf 1.8.9-2 [16.9 kB] Get: 10 http://deb.debian.org/debian bookworm/main armhf libsystemd-shared armhf 252.19-1~deb12u1 [1545 kB] Get: 11 http://deb.debian.org/debian bookworm/main armhf systemd armhf 252.19-1~deb12u1 [2933 kB] Get: 12 http://deb.debian.org/debian bookworm/main armhf systemd-sysv armhf 252.19-1~deb12u1 [41.8 kB] Get: 13 http://deb.debian.org/debian bookworm/main armhf libdbus-1-3 armhf 1.14.10-1~deb12u1 [178 kB] Get: 14 http://deb.debian.org/debian bookworm/main armhf dbus-bin armhf 1.14.10-1~deb12u1 [103 kB] Get: 15 http://deb.debian.org/debian bookworm/main armhf dbus-session-bus-common all 1.14.10-1~deb12u1 [78.2 kB] Get: 16 http://deb.debian.org/debian bookworm/main armhf libexpat1 armhf 2.5.0-1 [79.9 kB] Get: 17 http://deb.debian.org/debian bookworm/main armhf dbus-daemon armhf 1.14.10-1~deb12u1 [169 kB] Get: 18 http://deb.debian.org/debian bookworm/main armhf dbus-system-bus-common all 1.14.10-1~deb12u1 [79.3 kB] Get: 19 http://deb.debian.org/debian bookworm/main armhf dbus armhf 1.14.10-1~deb12u1 [94.8 kB] Get: 20 http://deb.debian.org/debian bookworm/main armhf libfftw3-double3 armhf 3.3.10-1 [325 kB] Get: 21 http://deb.debian.org/debian bookworm/main armhf libbrotli1 armhf 1.0.9-2+b6 [271 kB] Get: 22 http://deb.debian.org/debian bookworm/main armhf libpng16-16 armhf 1.6.39-2 [260 kB] Get: 23 http://deb.debian.org/debian bookworm/main armhf libfreetype6 armhf 2.12.1+dfsg-5 [332 kB] Get: 24 http://deb.debian.org/debian bookworm/main armhf fonts-dejavu-core all 2.37-6 [1068 kB] Get: 25 http://deb.debian.org/debian bookworm/main armhf fontconfig-config armhf 2.14.1-4 [315 kB] Get: 26 http://deb.debian.org/debian bookworm/main armhf libfontconfig1 armhf 2.14.1-4 [368 kB] Get: 27 http://deb.debian.org/debian bookworm/main armhf libaom3 armhf 3.6.0-1 [1369 kB] Get: 28 http://deb.debian.org/debian bookworm/main armhf libdav1d6 armhf 1.0.0-2 [256 kB] Get: 29 http://deb.debian.org/debian bookworm/main armhf libde265-0 armhf 1.0.11-1+deb12u1 [143 kB] Get: 30 http://deb.debian.org/debian bookworm/main armhf libx265-199 armhf 3.5-2+b1 [580 kB] Get: 31 http://deb.debian.org/debian bookworm/main armhf libheif1 armhf 1.15.1-1 [183 kB] Get: 32 http://deb.debian.org/debian bookworm/main armhf libjbig0 armhf 2.1-6.1 [27.1 kB] Get: 33 http://deb.debian.org/debian bookworm/main armhf libjpeg62-turbo armhf 1:2.1.5-2 [143 kB] Get: 34 http://deb.debian.org/debian bookworm/main armhf liblcms2-2 armhf 2.14-2 [125 kB] Get: 35 http://deb.debian.org/debian bookworm/main armhf libglib2.0-0 armhf 2.74.6-2 [1227 kB] Get: 36 http://deb.debian.org/debian bookworm/main armhf liblqr-1-0 armhf 0.4.2-2.1 [23.5 kB] Get: 37 http://deb.debian.org/debian bookworm/main armhf libltdl7 armhf 2.4.7-5 [390 kB] Get: 38 http://deb.debian.org/debian bookworm/main armhf libopenjp2-7 armhf 2.5.0-2 [169 kB] Get: 39 http://deb.debian.org/debian bookworm/main armhf libdeflate0 armhf 1.14-1 [52.2 kB] Get: 40 http://deb.debian.org/debian bookworm/main armhf liblerc4 armhf 4.0.0+ds-2 [137 kB] Get: 41 http://deb.debian.org/debian bookworm/main armhf libwebp7 armhf 1.2.4-0.2+deb12u1 [242 kB] Get: 42 http://deb.debian.org/debian bookworm/main armhf libtiff6 armhf 4.5.0-6+deb12u1 [295 kB] Get: 43 http://deb.debian.org/debian bookworm/main armhf libwebpdemux2 armhf 1.2.4-0.2+deb12u1 [98.4 kB] Get: 44 http://deb.debian.org/debian bookworm/main armhf libwebpmux3 armhf 1.2.4-0.2+deb12u1 [106 kB] Get: 45 http://deb.debian.org/debian bookworm/main armhf libxau6 armhf 1:1.0.9-1 [19.0 kB] Get: 46 http://deb.debian.org/debian bookworm/main armhf libbsd0 armhf 0.11.7-2 [113 kB] Get: 47 http://deb.debian.org/debian bookworm/main armhf libxdmcp6 armhf 1:1.1.2-3 [24.9 kB] Get: 48 http://deb.debian.org/debian bookworm/main armhf libxcb1 armhf 1.15-1 [140 kB] Get: 49 http://deb.debian.org/debian bookworm/main armhf libx11-data all 2:1.8.4-2+deb12u2 [292 kB] Get: 50 http://deb.debian.org/debian bookworm/main armhf libx11-6 armhf 2:1.8.4-2+deb12u2 [695 kB] Get: 51 http://deb.debian.org/debian bookworm/main armhf libxext6 armhf 2:1.3.4-1+b1 [47.8 kB] Get: 52 http://deb.debian.org/debian bookworm/main armhf libicu72 armhf 72.1-3 [9048 kB] Get: 53 http://deb.debian.org/debian bookworm/main armhf libxml2 armhf 2.9.14+dfsg-1.3~deb12u1 [591 kB] Get: 54 http://deb.debian.org/debian bookworm/main armhf imagemagick-6-common all 8:6.9.11.60+dfsg-1.6 [165 kB] Get: 55 http://deb.debian.org/debian bookworm/main armhf libmagickcore-6.q16-6 armhf 8:6.9.11.60+dfsg-1.6 [1634 kB] Get: 56 http://deb.debian.org/debian bookworm/main armhf libmagickwand-6.q16-6 armhf 8:6.9.11.60+dfsg-1.6 [402 kB] Get: 57 http://deb.debian.org/debian bookworm/main armhf libpython3.11-minimal armhf 3.11.2-6 [798 kB] Get: 58 http://deb.debian.org/debian bookworm/main armhf python3.11-minimal armhf 3.11.2-6 [1714 kB] Get: 59 http://deb.debian.org/debian bookworm/main armhf python3-minimal armhf 3.11.2-1+b1 [26.3 kB] Get: 60 http://deb.debian.org/debian bookworm/main armhf media-types all 10.0.0 [26.1 kB] Get: 61 http://deb.debian.org/debian bookworm/main armhf mailcap all 3.70+nmu1 [32.0 kB] Get: 62 http://deb.debian.org/debian bookworm/main armhf mime-support all 3.66 [10.9 kB] Get: 63 http://deb.debian.org/debian bookworm/main armhf readline-common all 8.2-1.3 [69.0 kB] Get: 64 http://deb.debian.org/debian bookworm/main armhf libreadline8 armhf 8.2-1.3 [144 kB] Get: 65 http://deb.debian.org/debian bookworm/main armhf libpython3.11-stdlib armhf 3.11.2-6 [1678 kB] Get: 66 http://deb.debian.org/debian bookworm/main armhf python3.11 armhf 3.11.2-6 [572 kB] Get: 67 http://deb.debian.org/debian bookworm/main armhf libpython3-stdlib armhf 3.11.2-1+b1 [9296 B] Get: 68 http://deb.debian.org/debian bookworm/main armhf python3 armhf 3.11.2-1+b1 [26.3 kB] Get: 69 http://deb.debian.org/debian bookworm/main armhf sgml-base all 1.31 [15.4 kB] Get: 70 http://deb.debian.org/debian bookworm/main armhf sudo armhf 1.9.13p3-1+deb12u1 [1832 kB] Get: 71 http://deb.debian.org/debian bookworm/main armhf tzdata all 2023c-5+deb12u1 [296 kB] Get: 72 http://deb.debian.org/debian bookworm/main armhf netbase all 6.4 [12.8 kB] Get: 73 http://deb.debian.org/debian bookworm/main armhf libproc2-0 armhf 2:4.0.2-3 [54.2 kB] Get: 74 http://deb.debian.org/debian bookworm/main armhf procps armhf 2:4.0.2-3 [695 kB] Get: 75 http://deb.debian.org/debian bookworm/main armhf sensible-utils all 0.0.17+nmu1 [19.0 kB] Get: 76 http://deb.debian.org/debian bookworm/main armhf openssl armhf 3.0.11-1~deb12u2 [1386 kB] Get: 77 http://deb.debian.org/debian bookworm/main armhf ca-certificates all 20230311 [153 kB] Get: 78 http://deb.debian.org/debian bookworm/main armhf libmagic-mgc armhf 1:5.44-3 [305 kB] Get: 79 http://deb.debian.org/debian bookworm/main armhf libmagic1 armhf 1:5.44-3 [96.5 kB] Get: 80 http://deb.debian.org/debian bookworm/main armhf file armhf 1:5.44-3 [41.6 kB] Get: 81 http://deb.debian.org/debian bookworm/main armhf gettext-base armhf 0.21-12 [157 kB] Get: 82 http://deb.debian.org/debian bookworm/main armhf libuchardet0 armhf 0.0.7-1 [65.0 kB] Get: 83 http://deb.debian.org/debian bookworm/main armhf groff-base armhf 1.22.4-10 [825 kB] Get: 84 http://deb.debian.org/debian bookworm/main armhf libpam-systemd armhf 252.19-1~deb12u1 [203 kB] Get: 85 http://deb.debian.org/debian bookworm/main armhf bsdextrautils armhf 2.38.1-5+b1 [78.6 kB] Get: 86 http://deb.debian.org/debian bookworm/main armhf libpipeline1 armhf 1.5.7-1 [33.6 kB] Get: 87 http://deb.debian.org/debian bookworm/main armhf man-db armhf 2.11.2-2 [1351 kB] Get: 88 http://deb.debian.org/debian bookworm/main armhf libpsl5 armhf 0.21.2-1 [57.5 kB] Get: 89 http://deb.debian.org/debian bookworm/main armhf wget armhf 1.21.3-1+b1 [957 kB] Get: 90 http://deb.debian.org/debian bookworm/main armhf hicolor-icon-theme all 0.17-2 [11.4 kB] Get: 91 http://deb.debian.org/debian bookworm/main armhf libgdk-pixbuf2.0-common all 2.42.10+dfsg-1 [306 kB] Get: 92 http://deb.debian.org/debian bookworm/main armhf shared-mime-info armhf 2.2-1 [726 kB] Get: 93 http://deb.debian.org/debian bookworm/main armhf libgdk-pixbuf-2.0-0 armhf 2.42.10+dfsg-1+b1 [124 kB] Get: 94 http://deb.debian.org/debian bookworm/main armhf gtk-update-icon-cache armhf 3.24.38-2~deb12u1 [43.1 kB] Get: 95 http://deb.debian.org/debian bookworm/main armhf adwaita-icon-theme all 43-1 [5124 kB] Get: 96 http://deb.debian.org/debian bookworm/main armhf python3-pkg-resources all 66.1.1-1 [296 kB] Get: 97 http://deb.debian.org/debian bookworm/main armhf python3-more-itertools all 8.10.0-2 [53.0 kB] Get: 98 http://deb.debian.org/debian bookworm/main armhf python3-zipp all 1.0.0-6 [6696 B] Get: 99 http://deb.debian.org/debian bookworm/main armhf python3-importlib-metadata all 4.12.0-1 [24.9 kB] Get: 100 http://deb.debian.org/debian bookworm/main armhf python3-markupsafe armhf 2.1.2-1+b1 [12.8 kB] Get: 101 http://deb.debian.org/debian bookworm/main armhf python3-mako all 1.2.4+ds-1 [81.9 kB] Get: 102 http://deb.debian.org/debian bookworm/main armhf python3-greenlet armhf 2.0.2-1 [138 kB] Get: 103 http://deb.debian.org/debian bookworm/main armhf python3-sqlalchemy all 1.4.46+ds1-1 [1008 kB] Get: 104 http://deb.debian.org/debian bookworm/main armhf python3-alembic all 1.8.1-2 [138 kB] Get: 105 http://deb.debian.org/debian bookworm/main armhf libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [326 kB] Get: 106 http://deb.debian.org/debian bookworm/main armhf libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [116 kB] Get: 107 http://deb.debian.org/debian bookworm/main armhf libjs-sphinxdoc all 5.3.0-4 [130 kB] Get: 108 http://deb.debian.org/debian bookworm/main armhf alembic all 1.8.1-2 [450 kB] Get: 109 http://deb.debian.org/debian bookworm/main armhf at-spi2-common all 2.46.0-5 [162 kB] Get: 110 http://deb.debian.org/debian bookworm/main armhf m4 armhf 1.4.19-3 [265 kB] Get: 111 http://deb.debian.org/debian bookworm/main armhf autoconf all 2.71-3 [332 kB] Get: 112 http://deb.debian.org/debian bookworm/main armhf autotools-dev all 20220109.1 [51.6 kB] Get: 113 http://deb.debian.org/debian bookworm/main armhf automake all 1:1.16.5-1.3 [823 kB] Get: 114 http://deb.debian.org/debian bookworm/main armhf autopoint all 0.21-12 [495 kB] Get: 115 http://deb.debian.org/debian bookworm/main armhf dbus-user-session armhf 1.14.10-1~deb12u1 [78.1 kB] Get: 116 http://deb.debian.org/debian bookworm/main armhf libdconf1 armhf 0.40.0-4 [36.1 kB] Get: 117 http://deb.debian.org/debian bookworm/main armhf dconf-service armhf 0.40.0-4 [27.6 kB] Get: 118 http://deb.debian.org/debian bookworm/main armhf dconf-gsettings-backend armhf 0.40.0-4 [23.2 kB] Get: 119 http://deb.debian.org/debian bookworm/main armhf libdebhelper-perl all 13.11.4 [81.2 kB] Get: 120 http://deb.debian.org/debian bookworm/main armhf libtool all 2.4.7-5 [517 kB] Get: 121 http://deb.debian.org/debian bookworm/main armhf dh-autoreconf all 20 [17.1 kB] Get: 122 http://deb.debian.org/debian bookworm/main armhf libarchive-zip-perl all 1.68-1 [104 kB] Get: 123 http://deb.debian.org/debian bookworm/main armhf libsub-override-perl all 0.09-4 [9304 B] Get: 124 http://deb.debian.org/debian bookworm/main armhf libfile-stripnondeterminism-perl all 1.13.1-1 [19.4 kB] Get: 125 http://deb.debian.org/debian bookworm/main armhf dh-strip-nondeterminism all 1.13.1-1 [8620 B] Get: 126 http://deb.debian.org/debian bookworm/main armhf libelf1 armhf 0.188-2.1 [170 kB] Get: 127 http://deb.debian.org/debian bookworm/main armhf dwz armhf 0.15-1 [101 kB] Get: 128 http://deb.debian.org/debian bookworm/main armhf gettext armhf 0.21-12 [1229 kB] Get: 129 http://deb.debian.org/debian bookworm/main armhf intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 130 http://deb.debian.org/debian bookworm/main armhf po-debconf all 1.0.21+nmu1 [248 kB] Get: 131 http://deb.debian.org/debian bookworm/main armhf debhelper all 13.11.4 [942 kB] Get: 132 http://deb.debian.org/debian bookworm/main armhf python3-lib2to3 all 3.11.2-3 [76.3 kB] Get: 133 http://deb.debian.org/debian bookworm/main armhf python3-distutils all 3.11.2-3 [131 kB] Get: 134 http://deb.debian.org/debian bookworm/main armhf dh-python all 5.20230130+deb12u1 [104 kB] Get: 135 http://deb.debian.org/debian bookworm/main armhf libtext-iconv-perl armhf 1.7-8 [13.8 kB] Get: 136 http://deb.debian.org/debian bookworm/main armhf emacsen-common all 3.0.5 [12.3 kB] Get: 137 http://deb.debian.org/debian bookworm/main armhf dictionaries-common all 1.29.5 [184 kB] Get: 138 http://deb.debian.org/debian bookworm/main armhf xml-core all 0.18+nmu1 [23.8 kB] Get: 139 http://deb.debian.org/debian bookworm/main armhf docutils-common all 0.19+dfsg-6 [127 kB] Get: 140 http://deb.debian.org/debian bookworm/main armhf python3-mccabe all 0.7.0-1 [10.5 kB] Get: 141 http://deb.debian.org/debian bookworm/main armhf python3-pycodestyle all 2.10.0-1 [47.4 kB] Get: 142 http://deb.debian.org/debian bookworm/main armhf python3-pyflakes all 2.5.0-1 [62.9 kB] Get: 143 http://deb.debian.org/debian bookworm/main armhf python3-setuptools all 66.1.1-1 [521 kB] Get: 144 http://deb.debian.org/debian bookworm/main armhf python3-flake8 all 5.0.4-4 [58.9 kB] Get: 145 http://deb.debian.org/debian bookworm/main armhf flake8 all 5.0.4-4 [20.6 kB] Get: 146 http://deb.debian.org/debian bookworm/main armhf fontconfig armhf 2.14.1-4 [448 kB] Get: 147 http://deb.debian.org/debian bookworm/main armhf fonts-glyphicons-halflings all 1.009~3.4.1+dfsg-3 [162 kB] Get: 148 http://deb.debian.org/debian bookworm/main armhf genisoimage armhf 9:1.1.11-3.4 [312 kB] Get: 149 http://deb.debian.org/debian bookworm/main armhf libproxy1v5 armhf 0.4.18-1.2 [49.6 kB] Get: 150 http://deb.debian.org/debian bookworm/main armhf glib-networking-common all 2.74.0-4 [80.3 kB] Get: 151 http://deb.debian.org/debian bookworm/main armhf glib-networking-services armhf 2.74.0-4 [11.2 kB] Get: 152 http://deb.debian.org/debian bookworm/main armhf gsettings-desktop-schemas all 43.0-1 [643 kB] Get: 153 http://deb.debian.org/debian bookworm/main armhf glib-networking armhf 2.74.0-4 [61.6 kB] Get: 154 http://deb.debian.org/debian bookworm/main armhf hunspell-en-us all 1:2020.12.07-2 [269 kB] Get: 155 http://deb.debian.org/debian bookworm/main armhf ieee-data all 20220827.1 [2029 kB] Get: 156 http://deb.debian.org/debian bookworm/main armhf libpixman-1-0 armhf 0.42.2-1 [465 kB] Get: 157 http://deb.debian.org/debian bookworm/main armhf libxcb-render0 armhf 1.15-1 [114 kB] Get: 158 http://deb.debian.org/debian bookworm/main armhf libxcb-shm0 armhf 1.15-1 [106 kB] Get: 159 http://deb.debian.org/debian bookworm/main armhf libxrender1 armhf 1:0.9.10-1.1 [30.1 kB] Get: 160 http://deb.debian.org/debian bookworm/main armhf libcairo2 armhf 1.16.0-7 [493 kB] Get: 161 http://deb.debian.org/debian bookworm/main armhf libcairo-gobject2 armhf 1.16.0-7 [111 kB] Get: 162 http://deb.debian.org/debian bookworm/main armhf libfribidi0 armhf 1.0.8-2.1 [63.1 kB] Get: 163 http://deb.debian.org/debian bookworm/main armhf libgraphite2-3 armhf 1.3.14-1 [70.5 kB] Get: 164 http://deb.debian.org/debian bookworm/main armhf libharfbuzz0b armhf 6.0.0+dfsg-3 [1893 kB] Get: 165 http://deb.debian.org/debian bookworm/main armhf libthai-data all 0.1.29-1 [176 kB] Get: 166 http://deb.debian.org/debian bookworm/main armhf libdatrie1 armhf 0.2.13-2+b1 [39.9 kB] Get: 167 http://deb.debian.org/debian bookworm/main armhf libthai0 armhf 0.1.29-1 [54.3 kB] Get: 168 http://deb.debian.org/debian bookworm/main armhf libpango-1.0-0 armhf 1.50.12+ds-1 [188 kB] Get: 169 http://deb.debian.org/debian bookworm/main armhf libpangoft2-1.0-0 armhf 1.50.12+ds-1 [40.9 kB] Get: 170 http://deb.debian.org/debian bookworm/main armhf libpangocairo-1.0-0 armhf 1.50.12+ds-1 [30.3 kB] Get: 171 http://deb.debian.org/debian bookworm/main armhf librsvg2-2 armhf 2.54.7+dfsg-1~deb12u1 [2184 kB] Get: 172 http://deb.debian.org/debian bookworm/main armhf librsvg2-common armhf 2.54.7+dfsg-1~deb12u1 [21.0 kB] Get: 173 http://deb.debian.org/debian bookworm/main armhf libdouble-conversion3 armhf 3.2.1-1 [39.3 kB] Get: 174 http://deb.debian.org/debian bookworm/main armhf libgslcblas0 armhf 2.7.1+dfsg-5 [80.1 kB] Get: 175 http://deb.debian.org/debian bookworm/main armhf libgsl27 armhf 2.7.1+dfsg-5 [766 kB] Get: 176 http://deb.debian.org/debian bookworm/main armhf lib2geom1.2.0 armhf 1.2.2-3 [309 kB] Get: 177 http://deb.debian.org/debian bookworm/main armhf libatk1.0-0 armhf 2.46.0-5 [42.4 kB] Get: 178 http://deb.debian.org/debian bookworm/main armhf libglibmm-2.4-1v5 armhf 2.66.5-2 [504 kB] Get: 179 http://deb.debian.org/debian bookworm/main armhf libatkmm-1.6-1v5 armhf 2.28.3-1 [68.7 kB] Get: 180 http://deb.debian.org/debian bookworm/main armhf libboost-filesystem1.74.0 armhf 1.74.0+ds1-21 [250 kB] Get: 181 http://deb.debian.org/debian bookworm/main armhf libcairomm-1.0-1v5 armhf 1.14.4-2 [49.5 kB] Get: 182 http://deb.debian.org/debian bookworm/main armhf librevenge-0.0-0 armhf 0.0.5-3 [257 kB] Get: 183 http://deb.debian.org/debian bookworm/main armhf libcdr-0.1-1 armhf 0.1.6-2+b2 [371 kB] Get: 184 http://deb.debian.org/debian bookworm/main armhf libgc1 armhf 1:8.2.2-3 [235 kB] Get: 185 http://deb.debian.org/debian bookworm/main armhf libgspell-1-common all 1.12.0-1 [32.9 kB] Get: 186 http://deb.debian.org/debian bookworm/main armhf libaspell15 armhf 0.60.8-4+b1 [304 kB] Get: 187 http://deb.debian.org/debian bookworm/main armhf libhunspell-1.7-0 armhf 1.7.1-1 [170 kB] Get: 188 http://deb.debian.org/debian bookworm/main armhf libenchant-2-2 armhf 2.3.3-2 [39.8 kB] Get: 189 http://deb.debian.org/debian bookworm/main armhf libxi6 armhf 2:1.8-1+b1 [78.6 kB] Get: 190 http://deb.debian.org/debian bookworm/main armhf libatspi2.0-0 armhf 2.46.0-5 [65.0 kB] Get: 191 http://deb.debian.org/debian bookworm/main armhf libatk-bridge2.0-0 armhf 2.46.0-5 [56.5 kB] Get: 192 http://deb.debian.org/debian bookworm/main armhf libcolord2 armhf 1.4.6-2.2 [118 kB] Get: 193 http://deb.debian.org/debian bookworm/main armhf libavahi-common-data armhf 0.8-10 [107 kB] Get: 194 http://deb.debian.org/debian bookworm/main armhf libavahi-common3 armhf 0.8-10 [38.3 kB] Get: 195 http://deb.debian.org/debian bookworm/main armhf libavahi-client3 armhf 0.8-10 [41.6 kB] Get: 196 http://deb.debian.org/debian bookworm/main armhf libcups2 armhf 2.4.2-3+deb12u5 [210 kB] Get: 197 http://deb.debian.org/debian bookworm/main armhf libepoxy0 armhf 1.5.10-1 [164 kB] Get: 198 http://deb.debian.org/debian bookworm/main armhf libwayland-client0 armhf 1.21.0-1 [23.3 kB] Get: 199 http://deb.debian.org/debian bookworm/main armhf libwayland-cursor0 armhf 1.21.0-1 [13.4 kB] Get: 200 http://deb.debian.org/debian bookworm/main armhf libwayland-egl1 armhf 1.21.0-1 [8528 B] Get: 201 http://deb.debian.org/debian bookworm/main armhf libxcomposite1 armhf 1:0.4.5-1 [16.1 kB] Get: 202 http://deb.debian.org/debian bookworm/main armhf libxfixes3 armhf 1:6.0.0-2 [21.1 kB] Get: 203 http://deb.debian.org/debian bookworm/main armhf libxcursor1 armhf 1:1.2.1-1 [37.9 kB] Get: 204 http://deb.debian.org/debian bookworm/main armhf libxdamage1 armhf 1:1.1.6-1 [14.6 kB] Get: 205 http://deb.debian.org/debian bookworm/main armhf libxinerama1 armhf 2:1.1.4-3 [17.4 kB] Get: 206 http://deb.debian.org/debian bookworm/main armhf xkb-data all 2.35.1-1 [764 kB] Get: 207 http://deb.debian.org/debian bookworm/main armhf libxkbcommon0 armhf 1.5.0-1 [94.0 kB] Get: 208 http://deb.debian.org/debian bookworm/main armhf libxrandr2 armhf 2:1.5.2-2+b1 [36.0 kB] Get: 209 http://deb.debian.org/debian bookworm/main armhf libgtk-3-common all 3.24.38-2~deb12u1 [3895 kB] Get: 210 http://deb.debian.org/debian bookworm/main armhf libgtk-3-0 armhf 3.24.38-2~deb12u1 [2423 kB] Get: 211 http://deb.debian.org/debian bookworm/main armhf libgspell-1-2 armhf 1.12.0-1+b2 [45.7 kB] Get: 212 http://deb.debian.org/debian bookworm/main armhf libpangomm-1.4-1v5 armhf 2.46.3-1 [58.3 kB] Get: 213 http://deb.debian.org/debian bookworm/main armhf libgtkmm-3.0-1v5 armhf 3.24.7-1 [794 kB] Get: 214 http://deb.debian.org/debian bookworm/main armhf libmagick++-6.q16-8 armhf 8:6.9.11.60+dfsg-1.6 [222 kB] Get: 215 http://deb.debian.org/debian bookworm/main armhf libnspr4 armhf 2:4.35-1 [91.5 kB] Get: 216 http://deb.debian.org/debian bookworm/main armhf libnss3 armhf 2:3.87.1-1 [1122 kB] Get: 217 http://deb.debian.org/debian bookworm/main armhf libpoppler126 armhf 22.12.0-2+b1 [1704 kB] Get: 218 http://deb.debian.org/debian bookworm/main armhf libpoppler-glib8 armhf 22.12.0-2+b1 [111 kB] Get: 219 http://deb.debian.org/debian bookworm/main armhf libpotrace0 armhf 1.16-2 [23.6 kB] Get: 220 http://deb.debian.org/debian bookworm/main armhf libsoup2.4-common all 2.74.3-1 [56.0 kB] Get: 221 http://deb.debian.org/debian bookworm/main armhf libsoup2.4-1 armhf 2.74.3-1 [234 kB] Get: 222 http://deb.debian.org/debian bookworm/main armhf libvisio-0.1-1 armhf 0.1.7-1+b3 [267 kB] Get: 223 http://deb.debian.org/debian bookworm/main armhf libwpd-0.10-10 armhf 0.10.3-2+b1 [230 kB] Get: 224 http://deb.debian.org/debian bookworm/main armhf libwpg-0.3-3 armhf 0.3.3-1 [68.1 kB] Get: 225 http://deb.debian.org/debian bookworm/main armhf libxslt1.1 armhf 1.1.35-1 [223 kB] Get: 226 http://deb.debian.org/debian bookworm/main armhf inkscape armhf 1.2.2-2+b1 [19.4 MB] Get: 227 http://deb.debian.org/debian bookworm/main armhf libonig5 armhf 6.9.8-1 [168 kB] Get: 228 http://deb.debian.org/debian bookworm/main armhf libjq1 armhf 1.6-2.1 [132 kB] Get: 229 http://deb.debian.org/debian bookworm/main armhf jq armhf 1.6-2.1 [64.7 kB] Get: 230 http://deb.debian.org/debian bookworm/main armhf libabsl20220623 armhf 20220623.1-1 [365 kB] Get: 231 http://deb.debian.org/debian bookworm/main armhf libc-ares2 armhf 1.18.1-3 [95.4 kB] Get: 232 http://deb.debian.org/debian bookworm/main armhf libev4 armhf 1:4.33-1 [38.6 kB] Get: 233 http://deb.debian.org/debian bookworm/main armhf x11-common all 1:7.7+23 [252 kB] Get: 234 http://deb.debian.org/debian bookworm/main armhf libice6 armhf 2:1.0.10-1 [51.9 kB] Get: 235 http://deb.debian.org/debian bookworm/main armhf libimagequant0 armhf 2.17.0-1 [27.9 kB] Get: 236 http://deb.debian.org/debian bookworm/main armhf libjs-bootstrap all 3.4.1+dfsg-3 [172 kB] Get: 237 http://deb.debian.org/debian bookworm/main armhf libjson-perl all 4.10000-1 [87.5 kB] Get: 238 http://deb.debian.org/debian bookworm/main armhf libsasl2-modules-db armhf 2.1.28+dfsg-10 [19.0 kB] Get: 239 http://deb.debian.org/debian bookworm/main armhf libsasl2-2 armhf 2.1.28+dfsg-10 [52.3 kB] Get: 240 http://deb.debian.org/debian bookworm/main armhf libldap-2.5-0 armhf 2.5.13+dfsg-5 [158 kB] Get: 241 http://deb.debian.org/debian bookworm/main armhf mysql-common all 5.8+1.1.0 [6636 B] Get: 242 http://deb.debian.org/debian bookworm/main armhf mariadb-common all 1:10.11.4-1~deb12u1 [24.2 kB] Get: 243 http://deb.debian.org/debian bookworm/main armhf libmariadb3 armhf 1:10.11.4-1~deb12u1 [156 kB] Get: 244 http://deb.debian.org/debian bookworm/main armhf libnorm1 armhf 1.5.9+dfsg-2 [185 kB] Get: 245 http://deb.debian.org/debian bookworm/main armhf libpgm-5.3-0 armhf 5.3.128~dfsg-2 [156 kB] Get: 246 http://deb.debian.org/debian bookworm/main armhf libpq5 armhf 15.5-0+deb12u1 [168 kB] Get: 247 http://deb.debian.org/debian bookworm/main armhf libprotobuf32 armhf 3.21.12-3 [823 kB] Get: 248 http://deb.debian.org/debian bookworm/main armhf libraqm0 armhf 0.7.0-4.1 [9116 B] Get: 249 http://deb.debian.org/debian bookworm/main armhf librdkafka1 armhf 2.0.2-1 [601 kB] Get: 250 http://deb.debian.org/debian bookworm/main armhf libre2-9 armhf 20220601+dfsg-1+b1 [148 kB] Get: 251 http://deb.debian.org/debian bookworm/main armhf librsvg2-bin armhf 2.54.7+dfsg-1~deb12u1 [1386 kB] Get: 252 http://deb.debian.org/debian bookworm/main armhf libsm6 armhf 2:1.2.3-1 [33.0 kB] Get: 253 http://deb.debian.org/debian bookworm/main armhf libsodium23 armhf 1.0.18-1 [147 kB] Get: 254 http://deb.debian.org/debian bookworm/main armhf libsubunit-perl all 1.4.0-3 [9304 B] Get: 255 http://deb.debian.org/debian bookworm/main armhf libxt6 armhf 1:1.2.1-1.1 [157 kB] Get: 256 http://deb.debian.org/debian bookworm/main armhf libxmu6 armhf 2:1.1.3-3 [52.6 kB] Get: 257 http://deb.debian.org/debian bookworm/main armhf libyaml-0-2 armhf 0.2.5-1 [46.8 kB] Get: 258 http://deb.debian.org/debian bookworm/main armhf libzmq5 armhf 4.3.4-6 [233 kB] Get: 259 http://deb.debian.org/debian bookworm/main armhf lsb-release all 12.0-1 [6416 B] Get: 260 http://deb.debian.org/debian bookworm/main armhf python3-wheel all 0.38.4-2 [30.8 kB] Get: 261 http://deb.debian.org/debian bookworm/main armhf python3-pip all 23.0.1+dfsg-1 [1325 kB] Get: 262 http://deb.debian.org/debian bookworm/main armhf openstack-pkg-tools all 123 [93.1 kB] Get: 263 http://deb.debian.org/debian bookworm/main armhf pycadf-common all 3.1.1-2 [5664 B] Get: 264 http://deb.debian.org/debian bookworm/main armhf pyflakes3 all 2.5.0-1 [13.6 kB] Get: 265 http://deb.debian.org/debian bookworm/main armhf python-babel-localedata all 2.10.3-1 [5615 kB] Get: 266 http://deb.debian.org/debian bookworm/main armhf python-os-api-ref-common all 2.3.0+ds1-1 [9404 B] Get: 267 http://deb.debian.org/debian bookworm/main armhf python-oslosphinx-common all 4.18.0-5 [30.0 kB] Get: 268 http://deb.debian.org/debian bookworm/main armhf python-tinycss2-common all 1.2.1-2 [31.5 kB] Get: 269 http://deb.debian.org/debian bookworm/main armhf python3-alabaster all 0.7.12-1 [20.8 kB] Get: 270 http://deb.debian.org/debian bookworm/main armhf python3-all armhf 3.11.2-1+b1 [1060 B] Get: 271 http://deb.debian.org/debian bookworm/main armhf python3-vine all 5.0.0+dfsg-3 [15.3 kB] Get: 272 http://deb.debian.org/debian bookworm/main armhf python3-amqp all 5.1.1-1 [44.5 kB] Get: 273 http://deb.debian.org/debian bookworm/main armhf python3-amqplib all 1.0.2-3 [33.4 kB] Get: 274 http://deb.debian.org/debian bookworm/main armhf python3-anyjson all 0.3.3-5 [8340 B] Get: 275 http://deb.debian.org/debian bookworm/main armhf python3-appdirs all 1.4.4-3 [13.0 kB] Get: 276 http://deb.debian.org/debian bookworm/main armhf python3-async-timeout all 4.0.2-1 [7476 B] Get: 277 http://deb.debian.org/debian bookworm/main armhf python3-attr all 22.2.0-1 [65.4 kB] Get: 278 http://deb.debian.org/debian bookworm/main armhf python3-six all 1.16.0-4 [17.5 kB] Get: 279 http://deb.debian.org/debian bookworm/main armhf python3-pbr all 5.10.0-2 [61.4 kB] Get: 280 http://deb.debian.org/debian bookworm/main armhf python3-wrapt armhf 1.14.1-2+b2 [39.6 kB] Get: 281 http://deb.debian.org/debian bookworm/main armhf python3-debtcollector all 2.5.0-2 [13.9 kB] Get: 282 http://deb.debian.org/debian bookworm/main armhf python3-wcwidth all 0.2.5+dfsg1-1.1 [21.4 kB] Get: 283 http://deb.debian.org/debian bookworm/main armhf python3-prettytable all 3.6.0-1 [36.0 kB] Get: 284 http://deb.debian.org/debian bookworm/main armhf python3-automaton all 3.0.1-2 [15.3 kB] Get: 285 http://deb.debian.org/debian bookworm/main armhf python3-autopage all 0.4.0-3 [12.7 kB] Get: 286 http://deb.debian.org/debian bookworm/main armhf python3-tz all 2022.7.1-4 [30.1 kB] Get: 287 http://deb.debian.org/debian bookworm/main armhf python3-babel all 2.10.3-1 [103 kB] Get: 288 http://deb.debian.org/debian bookworm/main armhf python3-bashate all 2.1.0-2 [14.1 kB] Get: 289 http://deb.debian.org/debian bookworm/main armhf python3-cffi-backend armhf 1.15.1-5+b1 [75.1 kB] Get: 290 http://deb.debian.org/debian bookworm/main armhf python3-bcrypt armhf 3.2.2-1 [28.3 kB] Get: 291 http://deb.debian.org/debian bookworm/main armhf python3-memcache all 1.59-5 [26.3 kB] Get: 292 http://deb.debian.org/debian bookworm/main armhf python3-uhashring all 2.1-3 [10.5 kB] Get: 293 http://deb.debian.org/debian bookworm/main armhf python3-binary-memcached all 0.31.1+dfsg1-2 [13.6 kB] Get: 294 http://deb.debian.org/debian bookworm/main armhf python3-blinker all 1.5-1 [14.7 kB] Get: 295 http://deb.debian.org/debian bookworm/main armhf python3-funcparserlib all 1.0.0-0.2 [17.5 kB] Get: 296 http://deb.debian.org/debian bookworm/main armhf python3-pil armhf 9.4.0-1.1+b1 [438 kB] Get: 297 http://deb.debian.org/debian bookworm/main armhf python3-webcolors all 1.11.1-1 [12.7 kB] Get: 298 http://deb.debian.org/debian bookworm/main armhf python3-roman all 3.3-3 [9880 B] Get: 299 http://deb.debian.org/debian bookworm/main armhf python3-docutils all 0.19+dfsg-6 [382 kB] Get: 300 http://deb.debian.org/debian bookworm/main armhf python3-reportlab-accel armhf 3.6.12-1+b1 [37.3 kB] Get: 301 http://deb.debian.org/debian bookworm/main armhf python3-reportlab all 3.6.12-1 [564 kB] Get: 302 http://deb.debian.org/debian bookworm/main armhf python3-blockdiag all 2.0.1+dfsg-1 [74.1 kB] Get: 303 http://deb.debian.org/debian bookworm/main armhf python3-soupsieve all 2.3.2-1 [38.8 kB] Get: 304 http://deb.debian.org/debian bookworm/main armhf python3-bs4 all 4.11.2-2 [121 kB] Get: 305 http://deb.debian.org/debian bookworm/main armhf python3-cachetools all 5.2.0-1 [13.0 kB] Get: 306 http://deb.debian.org/debian bookworm/main armhf python3-ply all 3.11-5 [65.8 kB] Get: 307 http://deb.debian.org/debian bookworm/main armhf python3-pycparser all 2.21-1 [78.8 kB] Get: 308 http://deb.debian.org/debian bookworm/main armhf python3-cffi all 1.15.1-5 [86.2 kB] Get: 309 http://deb.debian.org/debian bookworm/main armhf python3-xcffib all 0.11.1-4 [63.6 kB] Get: 310 http://deb.debian.org/debian bookworm/main armhf python3-cairocffi all 1.4.0-1 [68.3 kB] Get: 311 http://deb.debian.org/debian bookworm/main armhf python3-lxml armhf 4.9.2-1+b1 [1082 kB] Get: 312 http://deb.debian.org/debian bookworm/main armhf python3-webencodings all 0.5.1-5 [11.1 kB] Get: 313 http://deb.debian.org/debian bookworm/main armhf python3-tinycss2 all 1.2.1-2 [21.9 kB] Get: 314 http://deb.debian.org/debian bookworm/main armhf python3-cssselect2 all 0.7.0-1 [16.5 kB] Get: 315 http://deb.debian.org/debian bookworm/main armhf python3-defusedxml all 0.7.1-2 [43.3 kB] Get: 316 http://deb.debian.org/debian bookworm/main armhf python3-cairosvg all 2.5.2-1.1+deb12u1 [35.3 kB] Get: 317 http://deb.debian.org/debian bookworm/main armhf python3-certifi all 2022.9.24-1 [153 kB] Get: 318 http://deb.debian.org/debian bookworm/main armhf python3-chardet all 5.1.0+dfsg-2 [110 kB] Get: 319 http://deb.debian.org/debian bookworm/main armhf python3-charset-normalizer all 3.0.1-2 [49.3 kB] Get: 320 http://deb.debian.org/debian bookworm/main armhf python3-iso8601 all 1.0.2-1 [15.7 kB] Get: 321 http://deb.debian.org/debian bookworm/main armhf python3-cryptography armhf 38.0.4-3 [600 kB] Get: 322 http://deb.debian.org/debian bookworm/main armhf python3-jwt all 2.6.0-1 [26.6 kB] Get: 323 http://deb.debian.org/debian bookworm/main armhf python3-oauthlib all 3.2.2-1 [95.4 kB] Get: 324 http://deb.debian.org/debian bookworm/main armhf python3-os-service-types all 1.7.0-2 [12.7 kB] Get: 325 http://deb.debian.org/debian bookworm/main armhf python3-idna all 3.3-1 [39.4 kB] Get: 326 http://deb.debian.org/debian bookworm/main armhf python3-urllib3 all 1.26.12-1 [117 kB] Get: 327 http://deb.debian.org/debian bookworm/main armhf python3-requests all 2.28.1+dfsg-1 [67.9 kB] Get: 328 http://deb.debian.org/debian bookworm/main armhf python3-stevedore all 4.0.2-2 [21.0 kB] Get: 329 http://deb.debian.org/debian bookworm/main armhf python3-keystoneauth1 all 5.0.0-2 [152 kB] Get: 330 http://deb.debian.org/debian bookworm/main armhf python3-oslo.i18n all 5.1.0-3 [18.9 kB] Get: 331 http://deb.debian.org/debian bookworm/main armhf python3-netaddr all 0.8.0-2 [295 kB] Get: 332 http://deb.debian.org/debian bookworm/main armhf python3-netifaces armhf 0.11.0-2+b1 [15.9 kB] Get: 333 http://deb.debian.org/debian bookworm/main armhf python3-packaging all 23.0-1 [32.5 kB] Get: 334 http://deb.debian.org/debian bookworm/main armhf python3-pyparsing all 3.0.9-1 [138 kB] Get: 335 http://deb.debian.org/debian bookworm/main armhf python3-oslo.utils all 6.0.1-2 [60.3 kB] Get: 336 http://deb.debian.org/debian bookworm/main armhf python3-simplejson armhf 3.18.3-1 [57.1 kB] Get: 337 http://deb.debian.org/debian bookworm/main armhf python3-cinderclient all 1:9.1.0-3 [132 kB] Get: 338 http://deb.debian.org/debian bookworm/main armhf xclip armhf 0.13-2 [22.5 kB] Get: 339 http://deb.debian.org/debian bookworm/main armhf python3-pyperclip all 1.8.2-2 [13.2 kB] Get: 340 http://deb.debian.org/debian bookworm/main armhf python3-cmd2 all 2.4.2+ds-3 [144 kB] Get: 341 http://deb.debian.org/debian bookworm/main armhf python3-yaml armhf 6.0-3+b2 [111 kB] Get: 342 http://deb.debian.org/debian bookworm/main armhf python3-cliff all 4.0.0-2 [44.1 kB] Get: 343 http://deb.debian.org/debian bookworm/main armhf python3-confluent-kafka armhf 1.7.0-4 [71.8 kB] Get: 344 http://deb.debian.org/debian bookworm/main armhf python3-coverage armhf 6.5.0+dfsg1-2+b1 [152 kB] Get: 345 http://deb.debian.org/debian bookworm/main armhf python3-dateutil all 2.8.2-2 [78.3 kB] Get: 346 http://deb.debian.org/debian bookworm/main armhf python3-ddt all 1.6.0-2 [9088 B] Get: 347 http://deb.debian.org/debian bookworm/main armhf python3-decorator all 5.1.1-3 [14.9 kB] Get: 348 http://deb.debian.org/debian bookworm/main armhf python3-deprecated all 1.2.13-3 [14.1 kB] Get: 349 http://deb.debian.org/debian bookworm/main armhf python3-deprecation all 2.1.0-2 [14.8 kB] Get: 350 http://deb.debian.org/debian bookworm/main armhf python3-dnspython all 2.3.0-1 [152 kB] Get: 351 http://deb.debian.org/debian bookworm/main armhf python3-restructuredtext-lint all 1.3.2-2 [14.1 kB] Get: 352 http://deb.debian.org/debian bookworm/main armhf python3-pygments all 2.14.0+dfsg-1 [783 kB] Get: 353 http://deb.debian.org/debian bookworm/main armhf python3-doc8 all 0.10.1-1 [18.1 kB] Get: 354 http://deb.debian.org/debian bookworm/main armhf python3-dogpile.cache all 1.1.8-2 [41.7 kB] Get: 355 http://deb.debian.org/debian bookworm/main armhf python3-dracclient all 3.1.0-3 [46.1 kB] Get: 356 http://deb.debian.org/debian bookworm/main armhf python3-dulwich armhf 0.21.2-1+b1 [318 kB] Get: 357 http://deb.debian.org/debian bookworm/main armhf python3-protobuf armhf 3.21.12-3 [231 kB] Get: 358 http://deb.debian.org/debian bookworm/main armhf python3-grpcio armhf 1.51.1-3+b1 [1858 kB] Get: 359 http://deb.debian.org/debian bookworm/main armhf python3-tenacity all 8.2.1-1 [43.6 kB] Get: 360 http://deb.debian.org/debian bookworm/main armhf python3-etcd3 all 0.12.0-2 [31.0 kB] Get: 361 http://deb.debian.org/debian bookworm/main armhf python3-futurist all 2.4.1-2 [24.5 kB] Get: 362 http://deb.debian.org/debian bookworm/main armhf python3-etcd3gw all 2.0.0-2 [12.8 kB] Get: 363 http://deb.debian.org/debian bookworm/main armhf python3-monotonic all 1.6-2 [5728 B] Get: 364 http://deb.debian.org/debian bookworm/main armhf python3-eventlet all 0.33.1-4 [174 kB] Get: 365 http://deb.debian.org/debian bookworm/main armhf python3-extras all 1.0.0-4 [8028 B] Get: 366 http://deb.debian.org/debian bookworm/main armhf python3-fasteners all 0.17.3-2 [14.7 kB] Get: 367 http://deb.debian.org/debian bookworm/main armhf python3-testtools all 2.5.0-4 [122 kB] Get: 368 http://deb.debian.org/debian bookworm/main armhf python3-fixtures all 4.0.1-2 [34.0 kB] Get: 369 http://deb.debian.org/debian bookworm/main armhf python3-future all 0.18.2-6 [348 kB] Get: 370 http://deb.debian.org/debian bookworm/main armhf python3-zope.event all 4.4-3 [9420 B] Get: 371 http://deb.debian.org/debian bookworm/main armhf python3-zope.interface armhf 5.5.2-1+b1 [151 kB] Get: 372 http://deb.debian.org/debian bookworm/main armhf python3-gevent armhf 22.10.2-3 [680 kB] Get: 373 http://deb.debian.org/debian bookworm/main armhf python3-openssl all 23.0.0-1 [50.8 kB] Get: 374 http://deb.debian.org/debian bookworm/main armhf python3-json-pointer all 2.3-2 [15.1 kB] Get: 375 http://deb.debian.org/debian bookworm/main armhf python3-jsonpatch all 1.32-2 [13.2 kB] Get: 376 http://deb.debian.org/debian bookworm/main armhf python3-pyrsistent armhf 0.18.1-1+b3 [57.5 kB] Get: 377 http://deb.debian.org/debian bookworm/main armhf python3-jsonschema all 4.10.3-1 [67.9 kB] Get: 378 http://deb.debian.org/debian bookworm/main armhf python3-warlock all 2.0.1-2 [10.2 kB] Get: 379 http://deb.debian.org/debian bookworm/main armhf python3-glanceclient all 1:4.1.0-2 [132 kB] Get: 380 http://deb.debian.org/debian bookworm/main armhf python3-hacking all 4.1.0-2 [23.7 kB] Get: 381 http://deb.debian.org/debian bookworm/main armhf python3-ifaddr all 0.1.7-2 [8556 B] Get: 382 http://deb.debian.org/debian bookworm/main armhf python3-imagesize all 1.4.1-1 [6688 B] Get: 383 http://deb.debian.org/debian bookworm/main armhf python3-jmespath all 1.0.1-1 [21.1 kB] Get: 384 http://deb.debian.org/debian bookworm/main armhf python3-munch all 2.5.0-2 [12.6 kB] Get: 385 http://deb.debian.org/debian bookworm/main armhf python3-requestsexceptions all 1.4.0-3 [4188 B] Get: 386 http://deb.debian.org/debian bookworm/main armhf python3-openstacksdk all 0.101.0-2 [598 kB] Get: 387 http://deb.debian.org/debian bookworm/main armhf python3-osc-lib all 2.6.2-2 [52.7 kB] Get: 388 http://deb.debian.org/debian bookworm/main armhf python3-ironic-inspector-client all 4.8.0-2 [3348 B] Get: 389 http://deb.debian.org/debian bookworm/main armhf python3-oslo.context all 5.0.0-2 [14.3 kB] Get: 390 http://deb.debian.org/debian bookworm/main armhf python3-msgpack armhf 1.0.3-2+b1 [62.6 kB] Get: 391 http://deb.debian.org/debian bookworm/main armhf python3-oslo.serialization all 5.0.0-2 [15.9 kB] Get: 392 http://deb.debian.org/debian bookworm/main armhf python3-pyinotify all 0.9.6-2 [27.4 kB] Get: 393 http://deb.debian.org/debian bookworm/main armhf python3-oslo.log all 5.0.1-1 [43.6 kB] Get: 394 http://deb.debian.org/debian bookworm/main armhf python3-rfc3986 all 1.5.0-2 [22.2 kB] Get: 395 http://deb.debian.org/debian bookworm/main armhf python3-oslo.config all 1:9.0.0-3 [108 kB] Get: 396 http://deb.debian.org/debian bookworm/main armhf python3-oslo.concurrency all 5.0.1-3 [29.2 kB] Get: 397 http://deb.debian.org/debian bookworm/main armhf python3-webob all 1:1.8.6-3 [87.8 kB] Get: 398 http://deb.debian.org/debian bookworm/main armhf python3-zeroconf all 0.47.3-1 [71.5 kB] Get: 399 http://deb.debian.org/debian bookworm/main armhf python3-ironic-lib all 5.3.0-2 [56.4 kB] Get: 400 http://deb.debian.org/debian bookworm/main armhf python3-jaraco.classes all 3.2.1-3 [7184 B] Get: 401 http://deb.debian.org/debian bookworm/main armhf python3-jeepney all 0.8.0-3 [34.0 kB] Get: 402 http://deb.debian.org/debian bookworm/main armhf python3-jinja2 all 3.1.2-1 [119 kB] Get: 403 http://deb.debian.org/debian bookworm/main armhf python3-kerberos armhf 1.1.14-3.1+b7 [20.0 kB] Get: 404 http://deb.debian.org/debian bookworm/main armhf python3-pure-sasl all 0.5.1+dfsg1-2 [11.7 kB] Get: 405 http://deb.debian.org/debian bookworm/main armhf python3-kazoo all 2.8.0-2 [114 kB] Get: 406 http://deb.debian.org/debian bookworm/main armhf python3-secretstorage all 3.3.3-1 [16.9 kB] Get: 407 http://deb.debian.org/debian bookworm/main armhf python3-keyring all 23.9.3-2 [51.4 kB] Get: 408 http://deb.debian.org/debian bookworm/main armhf python3-keystoneclient all 1:5.0.1-3 [200 kB] Get: 409 http://deb.debian.org/debian bookworm/main armhf python3-oslo.cache all 3.2.0-1 [32.3 kB] Get: 410 http://deb.debian.org/debian bookworm/main armhf python3-pycadf all 3.1.1-2 [19.1 kB] Get: 411 http://deb.debian.org/debian bookworm/main armhf python3-keystonemiddleware all 10.1.0-4 [64.7 kB] Get: 412 http://deb.debian.org/debian bookworm/main armhf python3-kombu all 5.2.4-1 [139 kB] Get: 413 http://deb.debian.org/debian bookworm/main armhf python3-logutils all 0.3.5-1 [17.4 kB] Get: 414 http://deb.debian.org/debian bookworm/main armhf python3-sqlparse all 0.4.2-1 [37.6 kB] Get: 415 http://deb.debian.org/debian bookworm/main armhf python3-tempita all 0.5.2-7 [15.0 kB] Get: 416 http://deb.debian.org/debian bookworm/main armhf python3-migrate all 0.13.0-3 [79.4 kB] Get: 417 http://deb.debian.org/debian bookworm/main armhf python3-mysqldb armhf 1.4.6-2+b1 [46.9 kB] Get: 418 http://deb.debian.org/debian bookworm/main armhf sphinx-common all 5.3.0-4 [653 kB] Get: 419 http://deb.debian.org/debian bookworm/main armhf python3-snowballstemmer all 2.2.0-2 [57.8 kB] Get: 420 http://deb.debian.org/debian bookworm/main armhf python3-sphinx all 5.3.0-4 [549 kB] Get: 421 http://deb.debian.org/debian bookworm/main armhf python3-openstackdocstheme all 1.20.0-5 [864 kB] Get: 422 http://deb.debian.org/debian bookworm/main armhf python3-oslosphinx all 4.18.0-5 [34.5 kB] Get: 423 http://deb.debian.org/debian bookworm/main armhf python3-os-api-ref all 2.3.0+ds1-1 [16.8 kB] Get: 424 http://deb.debian.org/debian bookworm/main armhf python3-os-client-config all 2.1.0-1 [18.0 kB] Get: 425 http://deb.debian.org/debian bookworm/main armhf python3-os-traits all 2.9.0-2 [16.0 kB] Get: 426 http://deb.debian.org/debian bookworm/main armhf python3-psycopg2 armhf 2.9.5-1+b1 [110 kB] Get: 427 http://deb.debian.org/debian bookworm/main armhf python3-pymysql all 1.0.2-2 [42.2 kB] Get: 428 http://deb.debian.org/debian bookworm/main armhf python3-unittest2 all 1.1.0-9 [75.8 kB] Get: 429 http://deb.debian.org/debian bookworm/main armhf python3-testresources all 2.0.1-4 [26.2 kB] Get: 430 http://deb.debian.org/debian bookworm/main armhf python3-testscenarios all 0.5.0-3 [13.6 kB] Get: 431 http://deb.debian.org/debian bookworm/main armhf python3-oslo.db all 12.1.0-3 [107 kB] Get: 432 http://deb.debian.org/debian bookworm/main armhf python3-prometheus-client all 0.16.0-0.1 [45.2 kB] Get: 433 http://deb.debian.org/debian bookworm/main armhf python3-oslo.metrics all 0.5.0-2 [7056 B] Get: 434 http://deb.debian.org/debian bookworm/main armhf python3-statsd all 4.0.1-1 [14.0 kB] Get: 435 http://deb.debian.org/debian bookworm/main armhf python3-oslo.middleware all 5.0.0-2 [33.7 kB] Get: 436 http://deb.debian.org/debian bookworm/main armhf python3-paste all 3.5.2+repack-1 [525 kB] Get: 437 http://deb.debian.org/debian bookworm/main armhf python3-pastedeploy-tpl all 3.0.1-5 [8084 B] Get: 438 http://deb.debian.org/debian bookworm/main armhf python3-pastedeploy all 3.0.1-5 [18.8 kB] Get: 439 http://deb.debian.org/debian bookworm/main armhf python3-repoze.lru all 0.7-3 [12.2 kB] Get: 440 http://deb.debian.org/debian bookworm/main armhf python3-routes all 2.5.1-3 [98.1 kB] Get: 441 http://deb.debian.org/debian bookworm/main armhf python3-yappi armhf 1.4.0-1+b1 [29.8 kB] Get: 442 http://deb.debian.org/debian bookworm/main armhf python3-oslo.service all 3.0.0-2 [44.4 kB] Get: 443 http://deb.debian.org/debian bookworm/main armhf python3-py all 1.11.0-1 [89.2 kB] Get: 444 http://deb.debian.org/debian bookworm/main armhf python3-zmq armhf 24.0.1-4+b1 [245 kB] Get: 445 http://deb.debian.org/debian bookworm/main armhf python3-oslo.messaging all 14.0.0-2 [145 kB] Get: 446 http://deb.debian.org/debian bookworm/main armhf python3-oslo.policy all 4.0.0-2 [56.4 kB] Get: 447 http://deb.debian.org/debian bookworm/main armhf python3-psutil armhf 5.9.4-1+b1 [188 kB] Get: 448 http://deb.debian.org/debian bookworm/main armhf python3-oslo.reports all 2.4.0-2 [25.7 kB] Get: 449 http://deb.debian.org/debian bookworm/main armhf python3-oslo.rootwrap all 6.3.1-2 [25.1 kB] Get: 450 http://deb.debian.org/debian bookworm/main armhf python3-oslo.upgradecheck all 2.0.0-2 [8628 B] Get: 451 http://deb.debian.org/debian bookworm/main armhf python3-oslo.versionedobjects all 3.0.1-2 [57.2 kB] Get: 452 http://deb.debian.org/debian bookworm/main armhf python3-voluptuous all 0.12.2-1 [43.4 kB] Get: 453 http://deb.debian.org/debian bookworm/main armhf python3-subunit all 1.4.0-3 [65.3 kB] Get: 454 http://deb.debian.org/debian bookworm/main armhf subunit all 1.4.0-3 [13.6 kB] Get: 455 http://deb.debian.org/debian bookworm/main armhf python3-stestr all 3.2.1-1 [60.4 kB] Get: 456 http://deb.debian.org/debian bookworm/main armhf python3-oslotest all 1:4.5.0-3 [18.7 kB] Get: 457 http://deb.debian.org/debian bookworm/main armhf python3-osprofiler all 3.4.3-2 [45.0 kB] Get: 458 http://deb.debian.org/debian bookworm/main armhf python3-simplegeneric all 0.8.1-5 [10.9 kB] Get: 459 http://deb.debian.org/debian bookworm/main armhf python3-singledispatch all 3.4.0.3-4 [7428 B] Get: 460 http://deb.debian.org/debian bookworm/main armhf python3-waitress all 2.1.2-2 [48.9 kB] Get: 461 http://deb.debian.org/debian bookworm/main armhf python3-webtest all 3.0.0-2 [34.5 kB] Get: 462 http://deb.debian.org/debian bookworm/main armhf python3-pecan all 1.4.1-1 [104 kB] Get: 463 http://deb.debian.org/debian bookworm/main armhf python3-pyasn1 all 0.4.8-3 [62.2 kB] Get: 464 http://deb.debian.org/debian bookworm/main armhf python3-pycryptodome armhf 3.11.0+dfsg1-4 [1014 kB] Get: 465 http://deb.debian.org/debian bookworm/main armhf python3-pysmi all 0.3.2-3 [51.6 kB] Get: 466 http://deb.debian.org/debian bookworm/main armhf python3-pysnmp4 all 4.4.12-2 [181 kB] Get: 467 http://deb.debian.org/debian bookworm/main armhf python3-retrying all 1.3.3-4 [8876 B] Get: 468 http://deb.debian.org/debian bookworm/main armhf python3-sushy all 4.3.3-1 [108 kB] Get: 469 http://deb.debian.org/debian bookworm/main armhf python3-proliantutils all 2.14.0-2 [170 kB] Get: 470 http://deb.debian.org/debian bookworm/main armhf python3-pycdlib all 1.12.0+ds1-4 [151 kB] Get: 471 http://deb.debian.org/debian bookworm/main armhf python3-pyghmi all 1.5.34-2 [146 kB] Get: 472 http://deb.debian.org/debian bookworm/main armhf python3-pymemcache all 3.5.2-1 [42.6 kB] Get: 473 http://deb.debian.org/debian bookworm/main armhf python3-redis all 4.3.4-3 [188 kB] Get: 474 http://deb.debian.org/debian bookworm/main armhf python3-scciclient all 0.12.3-2 [44.0 kB] Get: 475 http://deb.debian.org/debian bookworm/main armhf python3-seqdiag all 2.0.0+dfsg-1 [22.8 kB] Get: 476 http://deb.debian.org/debian bookworm/main armhf python3-sphinxcontrib.httpdomain all 1.8.0-2 [19.5 kB] Get: 477 http://deb.debian.org/debian bookworm/main armhf python3-sphinxcontrib-pecanwsme all 0.10.0-2 [6404 B] Get: 478 http://deb.debian.org/debian bookworm/main armhf python3-sphinxcontrib.apidoc all 0.3.0-2 [7824 B] Get: 479 http://deb.debian.org/debian bookworm/main armhf python3-sphinxcontrib.seqdiag all 2.0.0-1 [8056 B] Get: 480 http://deb.debian.org/debian bookworm/main armhf python3-sphinxcontrib.svg2pdfconverter all 1.2.2-1 [6840 B] Get: 481 http://deb.debian.org/debian bookworm/main armhf python3-swiftclient all 1:4.1.0-2 [76.7 kB] Get: 482 http://deb.debian.org/debian bookworm/main armhf python3-zake all 0.2.2-4 [15.4 kB] Get: 483 http://deb.debian.org/debian bookworm/main armhf python3-tooz all 3.1.0-3 [52.3 kB] Fetched 139 MB in 5s (26.4 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libargon2-1:armhf. (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 ... 17881 files and directories currently installed.) Preparing to unpack .../00-libargon2-1_0~20171227-0.3+deb12u1_armhf.deb ... Unpacking libargon2-1:armhf (0~20171227-0.3+deb12u1) ... Selecting previously unselected package dmsetup. Preparing to unpack .../01-dmsetup_2%3a1.02.185-2_armhf.deb ... Unpacking dmsetup (2:1.02.185-2) ... Selecting previously unselected package libdevmapper1.02.1:armhf. Preparing to unpack .../02-libdevmapper1.02.1_2%3a1.02.185-2_armhf.deb ... Unpacking libdevmapper1.02.1:armhf (2:1.02.185-2) ... Selecting previously unselected package libjson-c5:armhf. Preparing to unpack .../03-libjson-c5_0.16-2_armhf.deb ... Unpacking libjson-c5:armhf (0.16-2) ... Selecting previously unselected package libcryptsetup12:armhf. Preparing to unpack .../04-libcryptsetup12_2%3a2.6.1-4~deb12u1_armhf.deb ... Unpacking libcryptsetup12:armhf (2:2.6.1-4~deb12u1) ... Selecting previously unselected package libfdisk1:armhf. Preparing to unpack .../05-libfdisk1_2.38.1-5+b1_armhf.deb ... Unpacking libfdisk1:armhf (2.38.1-5+b1) ... Selecting previously unselected package libkmod2:armhf. Preparing to unpack .../06-libkmod2_30+20221128-1_armhf.deb ... Unpacking libkmod2:armhf (30+20221128-1) ... Selecting previously unselected package libapparmor1:armhf. Preparing to unpack .../07-libapparmor1_3.0.8-3_armhf.deb ... Unpacking libapparmor1:armhf (3.0.8-3) ... Selecting previously unselected package libip4tc2:armhf. Preparing to unpack .../08-libip4tc2_1.8.9-2_armhf.deb ... Unpacking libip4tc2:armhf (1.8.9-2) ... Selecting previously unselected package libsystemd-shared:armhf. Preparing to unpack .../09-libsystemd-shared_252.19-1~deb12u1_armhf.deb ... Unpacking libsystemd-shared:armhf (252.19-1~deb12u1) ... Selecting previously unselected package systemd. Preparing to unpack .../10-systemd_252.19-1~deb12u1_armhf.deb ... Unpacking systemd (252.19-1~deb12u1) ... Setting up libargon2-1:armhf (0~20171227-0.3+deb12u1) ... Setting up libjson-c5:armhf (0.16-2) ... Setting up libfdisk1:armhf (2.38.1-5+b1) ... Setting up libkmod2:armhf (30+20221128-1) ... Setting up libapparmor1:armhf (3.0.8-3) ... Setting up libip4tc2:armhf (1.8.9-2) ... Setting up libsystemd-shared:armhf (252.19-1~deb12u1) ... Setting up libdevmapper1.02.1:armhf (2:1.02.185-2) ... Setting up libcryptsetup12:armhf (2:2.6.1-4~deb12u1) ... Setting up systemd (252.19-1~deb12u1) ... Created symlink /etc/systemd/system/getty.target.wants/getty@tty1.service -> /lib/systemd/system/getty@.service. Created symlink /etc/systemd/system/multi-user.target.wants/remote-fs.target -> /lib/systemd/system/remote-fs.target. Created symlink /etc/systemd/system/sysinit.target.wants/systemd-pstore.service -> /lib/systemd/system/systemd-pstore.service. Initializing machine ID from random generator. Creating group 'systemd-journal' with GID 999. Creating group 'systemd-network' with GID 998. Creating user 'systemd-network' (systemd Network Management) with UID 998 and GID 998. Setting up dmsetup (2:1.02.185-2) ... Selecting previously unselected package systemd-sysv. (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 ... 18800 files and directories currently installed.) Preparing to unpack .../00-systemd-sysv_252.19-1~deb12u1_armhf.deb ... Unpacking systemd-sysv (252.19-1~deb12u1) ... Selecting previously unselected package libdbus-1-3:armhf. Preparing to unpack .../01-libdbus-1-3_1.14.10-1~deb12u1_armhf.deb ... Unpacking libdbus-1-3:armhf (1.14.10-1~deb12u1) ... Selecting previously unselected package dbus-bin. Preparing to unpack .../02-dbus-bin_1.14.10-1~deb12u1_armhf.deb ... Unpacking dbus-bin (1.14.10-1~deb12u1) ... Selecting previously unselected package dbus-session-bus-common. Preparing to unpack .../03-dbus-session-bus-common_1.14.10-1~deb12u1_all.deb ... Unpacking dbus-session-bus-common (1.14.10-1~deb12u1) ... Selecting previously unselected package libexpat1:armhf. Preparing to unpack .../04-libexpat1_2.5.0-1_armhf.deb ... Unpacking libexpat1:armhf (2.5.0-1) ... Selecting previously unselected package dbus-daemon. Preparing to unpack .../05-dbus-daemon_1.14.10-1~deb12u1_armhf.deb ... Unpacking dbus-daemon (1.14.10-1~deb12u1) ... Selecting previously unselected package dbus-system-bus-common. Preparing to unpack .../06-dbus-system-bus-common_1.14.10-1~deb12u1_all.deb ... Unpacking dbus-system-bus-common (1.14.10-1~deb12u1) ... Selecting previously unselected package dbus. Preparing to unpack .../07-dbus_1.14.10-1~deb12u1_armhf.deb ... Unpacking dbus (1.14.10-1~deb12u1) ... Selecting previously unselected package libfftw3-double3:armhf. Preparing to unpack .../08-libfftw3-double3_3.3.10-1_armhf.deb ... Unpacking libfftw3-double3:armhf (3.3.10-1) ... Selecting previously unselected package libbrotli1:armhf. Preparing to unpack .../09-libbrotli1_1.0.9-2+b6_armhf.deb ... Unpacking libbrotli1:armhf (1.0.9-2+b6) ... Selecting previously unselected package libpng16-16:armhf. Preparing to unpack .../10-libpng16-16_1.6.39-2_armhf.deb ... Unpacking libpng16-16:armhf (1.6.39-2) ... Selecting previously unselected package libfreetype6:armhf. Preparing to unpack .../11-libfreetype6_2.12.1+dfsg-5_armhf.deb ... Unpacking libfreetype6:armhf (2.12.1+dfsg-5) ... Selecting previously unselected package fonts-dejavu-core. Preparing to unpack .../12-fonts-dejavu-core_2.37-6_all.deb ... Unpacking fonts-dejavu-core (2.37-6) ... Selecting previously unselected package fontconfig-config. Preparing to unpack .../13-fontconfig-config_2.14.1-4_armhf.deb ... Unpacking fontconfig-config (2.14.1-4) ... Selecting previously unselected package libfontconfig1:armhf. Preparing to unpack .../14-libfontconfig1_2.14.1-4_armhf.deb ... Unpacking libfontconfig1:armhf (2.14.1-4) ... Selecting previously unselected package libaom3:armhf. Preparing to unpack .../15-libaom3_3.6.0-1_armhf.deb ... Unpacking libaom3:armhf (3.6.0-1) ... Selecting previously unselected package libdav1d6:armhf. Preparing to unpack .../16-libdav1d6_1.0.0-2_armhf.deb ... Unpacking libdav1d6:armhf (1.0.0-2) ... Selecting previously unselected package libde265-0:armhf. Preparing to unpack .../17-libde265-0_1.0.11-1+deb12u1_armhf.deb ... Unpacking libde265-0:armhf (1.0.11-1+deb12u1) ... Selecting previously unselected package libx265-199:armhf. Preparing to unpack .../18-libx265-199_3.5-2+b1_armhf.deb ... Unpacking libx265-199:armhf (3.5-2+b1) ... Selecting previously unselected package libheif1:armhf. Preparing to unpack .../19-libheif1_1.15.1-1_armhf.deb ... Unpacking libheif1:armhf (1.15.1-1) ... Selecting previously unselected package libjbig0:armhf. Preparing to unpack .../20-libjbig0_2.1-6.1_armhf.deb ... Unpacking libjbig0:armhf (2.1-6.1) ... Selecting previously unselected package libjpeg62-turbo:armhf. Preparing to unpack .../21-libjpeg62-turbo_1%3a2.1.5-2_armhf.deb ... Unpacking libjpeg62-turbo:armhf (1:2.1.5-2) ... Selecting previously unselected package liblcms2-2:armhf. Preparing to unpack .../22-liblcms2-2_2.14-2_armhf.deb ... Unpacking liblcms2-2:armhf (2.14-2) ... Selecting previously unselected package libglib2.0-0:armhf. Preparing to unpack .../23-libglib2.0-0_2.74.6-2_armhf.deb ... Unpacking libglib2.0-0:armhf (2.74.6-2) ... Selecting previously unselected package liblqr-1-0:armhf. Preparing to unpack .../24-liblqr-1-0_0.4.2-2.1_armhf.deb ... Unpacking liblqr-1-0:armhf (0.4.2-2.1) ... Selecting previously unselected package libltdl7:armhf. Preparing to unpack .../25-libltdl7_2.4.7-5_armhf.deb ... Unpacking libltdl7:armhf (2.4.7-5) ... Selecting previously unselected package libopenjp2-7:armhf. Preparing to unpack .../26-libopenjp2-7_2.5.0-2_armhf.deb ... Unpacking libopenjp2-7:armhf (2.5.0-2) ... Selecting previously unselected package libdeflate0:armhf. Preparing to unpack .../27-libdeflate0_1.14-1_armhf.deb ... Unpacking libdeflate0:armhf (1.14-1) ... Selecting previously unselected package liblerc4:armhf. Preparing to unpack .../28-liblerc4_4.0.0+ds-2_armhf.deb ... Unpacking liblerc4:armhf (4.0.0+ds-2) ... Selecting previously unselected package libwebp7:armhf. Preparing to unpack .../29-libwebp7_1.2.4-0.2+deb12u1_armhf.deb ... Unpacking libwebp7:armhf (1.2.4-0.2+deb12u1) ... Selecting previously unselected package libtiff6:armhf. Preparing to unpack .../30-libtiff6_4.5.0-6+deb12u1_armhf.deb ... Unpacking libtiff6:armhf (4.5.0-6+deb12u1) ... Selecting previously unselected package libwebpdemux2:armhf. Preparing to unpack .../31-libwebpdemux2_1.2.4-0.2+deb12u1_armhf.deb ... Unpacking libwebpdemux2:armhf (1.2.4-0.2+deb12u1) ... Selecting previously unselected package libwebpmux3:armhf. Preparing to unpack .../32-libwebpmux3_1.2.4-0.2+deb12u1_armhf.deb ... Unpacking libwebpmux3:armhf (1.2.4-0.2+deb12u1) ... Selecting previously unselected package libxau6:armhf. Preparing to unpack .../33-libxau6_1%3a1.0.9-1_armhf.deb ... Unpacking libxau6:armhf (1:1.0.9-1) ... Selecting previously unselected package libbsd0:armhf. Preparing to unpack .../34-libbsd0_0.11.7-2_armhf.deb ... Unpacking libbsd0:armhf (0.11.7-2) ... Selecting previously unselected package libxdmcp6:armhf. Preparing to unpack .../35-libxdmcp6_1%3a1.1.2-3_armhf.deb ... Unpacking libxdmcp6:armhf (1:1.1.2-3) ... Selecting previously unselected package libxcb1:armhf. Preparing to unpack .../36-libxcb1_1.15-1_armhf.deb ... Unpacking libxcb1:armhf (1.15-1) ... Selecting previously unselected package libx11-data. Preparing to unpack .../37-libx11-data_2%3a1.8.4-2+deb12u2_all.deb ... Unpacking libx11-data (2:1.8.4-2+deb12u2) ... Selecting previously unselected package libx11-6:armhf. Preparing to unpack .../38-libx11-6_2%3a1.8.4-2+deb12u2_armhf.deb ... Unpacking libx11-6:armhf (2:1.8.4-2+deb12u2) ... Selecting previously unselected package libxext6:armhf. Preparing to unpack .../39-libxext6_2%3a1.3.4-1+b1_armhf.deb ... Unpacking libxext6:armhf (2:1.3.4-1+b1) ... Selecting previously unselected package libicu72:armhf. Preparing to unpack .../40-libicu72_72.1-3_armhf.deb ... Unpacking libicu72:armhf (72.1-3) ... Selecting previously unselected package libxml2:armhf. Preparing to unpack .../41-libxml2_2.9.14+dfsg-1.3~deb12u1_armhf.deb ... Unpacking libxml2:armhf (2.9.14+dfsg-1.3~deb12u1) ... Selecting previously unselected package imagemagick-6-common. Preparing to unpack .../42-imagemagick-6-common_8%3a6.9.11.60+dfsg-1.6_all.deb ... Unpacking imagemagick-6-common (8:6.9.11.60+dfsg-1.6) ... Selecting previously unselected package libmagickcore-6.q16-6:armhf. Preparing to unpack .../43-libmagickcore-6.q16-6_8%3a6.9.11.60+dfsg-1.6_armhf.deb ... Unpacking libmagickcore-6.q16-6:armhf (8:6.9.11.60+dfsg-1.6) ... Selecting previously unselected package libmagickwand-6.q16-6:armhf. Preparing to unpack .../44-libmagickwand-6.q16-6_8%3a6.9.11.60+dfsg-1.6_armhf.deb ... Unpacking libmagickwand-6.q16-6:armhf (8:6.9.11.60+dfsg-1.6) ... Selecting previously unselected package libpython3.11-minimal:armhf. Preparing to unpack .../45-libpython3.11-minimal_3.11.2-6_armhf.deb ... Unpacking libpython3.11-minimal:armhf (3.11.2-6) ... Selecting previously unselected package python3.11-minimal. Preparing to unpack .../46-python3.11-minimal_3.11.2-6_armhf.deb ... Unpacking python3.11-minimal (3.11.2-6) ... Setting up libpython3.11-minimal:armhf (3.11.2-6) ... Setting up libexpat1:armhf (2.5.0-1) ... Setting up python3.11-minimal (3.11.2-6) ... Selecting previously unselected package python3-minimal. (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 ... 20114 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.11.2-1+b1_armhf.deb ... Unpacking python3-minimal (3.11.2-1+b1) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_10.0.0_all.deb ... Unpacking media-types (10.0.0) ... Selecting previously unselected package mailcap. Preparing to unpack .../2-mailcap_3.70+nmu1_all.deb ... Unpacking mailcap (3.70+nmu1) ... Selecting previously unselected package mime-support. Preparing to unpack .../3-mime-support_3.66_all.deb ... Unpacking mime-support (3.66) ... Selecting previously unselected package readline-common. Preparing to unpack .../4-readline-common_8.2-1.3_all.deb ... Unpacking readline-common (8.2-1.3) ... Selecting previously unselected package libreadline8:armhf. Preparing to unpack .../5-libreadline8_8.2-1.3_armhf.deb ... Unpacking libreadline8:armhf (8.2-1.3) ... Selecting previously unselected package libpython3.11-stdlib:armhf. Preparing to unpack .../6-libpython3.11-stdlib_3.11.2-6_armhf.deb ... Unpacking libpython3.11-stdlib:armhf (3.11.2-6) ... Selecting previously unselected package python3.11. Preparing to unpack .../7-python3.11_3.11.2-6_armhf.deb ... Unpacking python3.11 (3.11.2-6) ... Selecting previously unselected package libpython3-stdlib:armhf. Preparing to unpack .../8-libpython3-stdlib_3.11.2-1+b1_armhf.deb ... Unpacking libpython3-stdlib:armhf (3.11.2-1+b1) ... Setting up python3-minimal (3.11.2-1+b1) ... Selecting previously unselected package python3. (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 ... 20572 files and directories currently installed.) Preparing to unpack .../000-python3_3.11.2-1+b1_armhf.deb ... Unpacking python3 (3.11.2-1+b1) ... Selecting previously unselected package sgml-base. Preparing to unpack .../001-sgml-base_1.31_all.deb ... Unpacking sgml-base (1.31) ... Selecting previously unselected package sudo. Preparing to unpack .../002-sudo_1.9.13p3-1+deb12u1_armhf.deb ... Unpacking sudo (1.9.13p3-1+deb12u1) ... Selecting previously unselected package tzdata. Preparing to unpack .../003-tzdata_2023c-5+deb12u1_all.deb ... Unpacking tzdata (2023c-5+deb12u1) ... Selecting previously unselected package netbase. Preparing to unpack .../004-netbase_6.4_all.deb ... Unpacking netbase (6.4) ... Selecting previously unselected package libproc2-0:armhf. Preparing to unpack .../005-libproc2-0_2%3a4.0.2-3_armhf.deb ... Unpacking libproc2-0:armhf (2:4.0.2-3) ... Selecting previously unselected package procps. Preparing to unpack .../006-procps_2%3a4.0.2-3_armhf.deb ... Unpacking procps (2:4.0.2-3) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../007-sensible-utils_0.0.17+nmu1_all.deb ... Unpacking sensible-utils (0.0.17+nmu1) ... Selecting previously unselected package openssl. Preparing to unpack .../008-openssl_3.0.11-1~deb12u2_armhf.deb ... Unpacking openssl (3.0.11-1~deb12u2) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../009-ca-certificates_20230311_all.deb ... Unpacking ca-certificates (20230311) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../010-libmagic-mgc_1%3a5.44-3_armhf.deb ... Unpacking libmagic-mgc (1:5.44-3) ... Selecting previously unselected package libmagic1:armhf. Preparing to unpack .../011-libmagic1_1%3a5.44-3_armhf.deb ... Unpacking libmagic1:armhf (1:5.44-3) ... Selecting previously unselected package file. Preparing to unpack .../012-file_1%3a5.44-3_armhf.deb ... Unpacking file (1:5.44-3) ... Selecting previously unselected package gettext-base. Preparing to unpack .../013-gettext-base_0.21-12_armhf.deb ... Unpacking gettext-base (0.21-12) ... Selecting previously unselected package libuchardet0:armhf. Preparing to unpack .../014-libuchardet0_0.0.7-1_armhf.deb ... Unpacking libuchardet0:armhf (0.0.7-1) ... Selecting previously unselected package groff-base. Preparing to unpack .../015-groff-base_1.22.4-10_armhf.deb ... Unpacking groff-base (1.22.4-10) ... Selecting previously unselected package libpam-systemd:armhf. Preparing to unpack .../016-libpam-systemd_252.19-1~deb12u1_armhf.deb ... Unpacking libpam-systemd:armhf (252.19-1~deb12u1) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../017-bsdextrautils_2.38.1-5+b1_armhf.deb ... Unpacking bsdextrautils (2.38.1-5+b1) ... Selecting previously unselected package libpipeline1:armhf. Preparing to unpack .../018-libpipeline1_1.5.7-1_armhf.deb ... Unpacking libpipeline1:armhf (1.5.7-1) ... Selecting previously unselected package man-db. Preparing to unpack .../019-man-db_2.11.2-2_armhf.deb ... Unpacking man-db (2.11.2-2) ... Selecting previously unselected package libpsl5:armhf. Preparing to unpack .../020-libpsl5_0.21.2-1_armhf.deb ... Unpacking libpsl5:armhf (0.21.2-1) ... Selecting previously unselected package wget. Preparing to unpack .../021-wget_1.21.3-1+b1_armhf.deb ... Unpacking wget (1.21.3-1+b1) ... Selecting previously unselected package hicolor-icon-theme. Preparing to unpack .../022-hicolor-icon-theme_0.17-2_all.deb ... Unpacking hicolor-icon-theme (0.17-2) ... Selecting previously unselected package libgdk-pixbuf2.0-common. Preparing to unpack .../023-libgdk-pixbuf2.0-common_2.42.10+dfsg-1_all.deb ... Unpacking libgdk-pixbuf2.0-common (2.42.10+dfsg-1) ... Selecting previously unselected package shared-mime-info. Preparing to unpack .../024-shared-mime-info_2.2-1_armhf.deb ... Unpacking shared-mime-info (2.2-1) ... Selecting previously unselected package libgdk-pixbuf-2.0-0:armhf. Preparing to unpack .../025-libgdk-pixbuf-2.0-0_2.42.10+dfsg-1+b1_armhf.deb ... Unpacking libgdk-pixbuf-2.0-0:armhf (2.42.10+dfsg-1+b1) ... Selecting previously unselected package gtk-update-icon-cache. Preparing to unpack .../026-gtk-update-icon-cache_3.24.38-2~deb12u1_armhf.deb ... Unpacking gtk-update-icon-cache (3.24.38-2~deb12u1) ... Selecting previously unselected package adwaita-icon-theme. Preparing to unpack .../027-adwaita-icon-theme_43-1_all.deb ... Unpacking adwaita-icon-theme (43-1) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../028-python3-pkg-resources_66.1.1-1_all.deb ... Unpacking python3-pkg-resources (66.1.1-1) ... Selecting previously unselected package python3-more-itertools. Preparing to unpack .../029-python3-more-itertools_8.10.0-2_all.deb ... Unpacking python3-more-itertools (8.10.0-2) ... Selecting previously unselected package python3-zipp. Preparing to unpack .../030-python3-zipp_1.0.0-6_all.deb ... Unpacking python3-zipp (1.0.0-6) ... Selecting previously unselected package python3-importlib-metadata. Preparing to unpack .../031-python3-importlib-metadata_4.12.0-1_all.deb ... Unpacking python3-importlib-metadata (4.12.0-1) ... Selecting previously unselected package python3-markupsafe. Preparing to unpack .../032-python3-markupsafe_2.1.2-1+b1_armhf.deb ... Unpacking python3-markupsafe (2.1.2-1+b1) ... Selecting previously unselected package python3-mako. Preparing to unpack .../033-python3-mako_1.2.4+ds-1_all.deb ... Unpacking python3-mako (1.2.4+ds-1) ... Selecting previously unselected package python3-greenlet. Preparing to unpack .../034-python3-greenlet_2.0.2-1_armhf.deb ... Unpacking python3-greenlet (2.0.2-1) ... Selecting previously unselected package python3-sqlalchemy. Preparing to unpack .../035-python3-sqlalchemy_1.4.46+ds1-1_all.deb ... Unpacking python3-sqlalchemy (1.4.46+ds1-1) ... Selecting previously unselected package python3-alembic. Preparing to unpack .../036-python3-alembic_1.8.1-2_all.deb ... Unpacking python3-alembic (1.8.1-2) ... Selecting previously unselected package libjs-jquery. Preparing to unpack .../037-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... Selecting previously unselected package libjs-underscore. Preparing to unpack .../038-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... Selecting previously unselected package libjs-sphinxdoc. Preparing to unpack .../039-libjs-sphinxdoc_5.3.0-4_all.deb ... Unpacking libjs-sphinxdoc (5.3.0-4) ... Selecting previously unselected package alembic. Preparing to unpack .../040-alembic_1.8.1-2_all.deb ... Unpacking alembic (1.8.1-2) ... Selecting previously unselected package at-spi2-common. Preparing to unpack .../041-at-spi2-common_2.46.0-5_all.deb ... Unpacking at-spi2-common (2.46.0-5) ... Selecting previously unselected package m4. Preparing to unpack .../042-m4_1.4.19-3_armhf.deb ... Unpacking m4 (1.4.19-3) ... Selecting previously unselected package autoconf. Preparing to unpack .../043-autoconf_2.71-3_all.deb ... Unpacking autoconf (2.71-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../044-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../045-automake_1%3a1.16.5-1.3_all.deb ... Unpacking automake (1:1.16.5-1.3) ... Selecting previously unselected package autopoint. Preparing to unpack .../046-autopoint_0.21-12_all.deb ... Unpacking autopoint (0.21-12) ... Selecting previously unselected package dbus-user-session. Preparing to unpack .../047-dbus-user-session_1.14.10-1~deb12u1_armhf.deb ... Unpacking dbus-user-session (1.14.10-1~deb12u1) ... Selecting previously unselected package libdconf1:armhf. Preparing to unpack .../048-libdconf1_0.40.0-4_armhf.deb ... Unpacking libdconf1:armhf (0.40.0-4) ... Selecting previously unselected package dconf-service. Preparing to unpack .../049-dconf-service_0.40.0-4_armhf.deb ... Unpacking dconf-service (0.40.0-4) ... Selecting previously unselected package dconf-gsettings-backend:armhf. Preparing to unpack .../050-dconf-gsettings-backend_0.40.0-4_armhf.deb ... Unpacking dconf-gsettings-backend:armhf (0.40.0-4) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../051-libdebhelper-perl_13.11.4_all.deb ... Unpacking libdebhelper-perl (13.11.4) ... Selecting previously unselected package libtool. Preparing to unpack .../052-libtool_2.4.7-5_all.deb ... Unpacking libtool (2.4.7-5) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../053-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../054-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libsub-override-perl. Preparing to unpack .../055-libsub-override-perl_0.09-4_all.deb ... Unpacking libsub-override-perl (0.09-4) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../056-libfile-stripnondeterminism-perl_1.13.1-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.13.1-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../057-dh-strip-nondeterminism_1.13.1-1_all.deb ... Unpacking dh-strip-nondeterminism (1.13.1-1) ... Selecting previously unselected package libelf1:armhf. Preparing to unpack .../058-libelf1_0.188-2.1_armhf.deb ... Unpacking libelf1:armhf (0.188-2.1) ... Selecting previously unselected package dwz. Preparing to unpack .../059-dwz_0.15-1_armhf.deb ... Unpacking dwz (0.15-1) ... Selecting previously unselected package gettext. Preparing to unpack .../060-gettext_0.21-12_armhf.deb ... Unpacking gettext (0.21-12) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../061-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../062-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../063-debhelper_13.11.4_all.deb ... Unpacking debhelper (13.11.4) ... Selecting previously unselected package python3-lib2to3. Preparing to unpack .../064-python3-lib2to3_3.11.2-3_all.deb ... Unpacking python3-lib2to3 (3.11.2-3) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../065-python3-distutils_3.11.2-3_all.deb ... Unpacking python3-distutils (3.11.2-3) ... Selecting previously unselected package dh-python. Preparing to unpack .../066-dh-python_5.20230130+deb12u1_all.deb ... Unpacking dh-python (5.20230130+deb12u1) ... Selecting previously unselected package libtext-iconv-perl:armhf. Preparing to unpack .../067-libtext-iconv-perl_1.7-8_armhf.deb ... Unpacking libtext-iconv-perl:armhf (1.7-8) ... Selecting previously unselected package emacsen-common. Preparing to unpack .../068-emacsen-common_3.0.5_all.deb ... Unpacking emacsen-common (3.0.5) ... Selecting previously unselected package dictionaries-common. Preparing to unpack .../069-dictionaries-common_1.29.5_all.deb ... Adding 'diversion of /usr/share/dict/words to /usr/share/dict/words.pre-dictionaries-common by dictionaries-common' Unpacking dictionaries-common (1.29.5) ... Selecting previously unselected package xml-core. Preparing to unpack .../070-xml-core_0.18+nmu1_all.deb ... Unpacking xml-core (0.18+nmu1) ... Selecting previously unselected package docutils-common. Preparing to unpack .../071-docutils-common_0.19+dfsg-6_all.deb ... Unpacking docutils-common (0.19+dfsg-6) ... Selecting previously unselected package python3-mccabe. Preparing to unpack .../072-python3-mccabe_0.7.0-1_all.deb ... Unpacking python3-mccabe (0.7.0-1) ... Selecting previously unselected package python3-pycodestyle. Preparing to unpack .../073-python3-pycodestyle_2.10.0-1_all.deb ... Unpacking python3-pycodestyle (2.10.0-1) ... Selecting previously unselected package python3-pyflakes. Preparing to unpack .../074-python3-pyflakes_2.5.0-1_all.deb ... Unpacking python3-pyflakes (2.5.0-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../075-python3-setuptools_66.1.1-1_all.deb ... Unpacking python3-setuptools (66.1.1-1) ... Selecting previously unselected package python3-flake8. Preparing to unpack .../076-python3-flake8_5.0.4-4_all.deb ... Unpacking python3-flake8 (5.0.4-4) ... Selecting previously unselected package flake8. Preparing to unpack .../077-flake8_5.0.4-4_all.deb ... Unpacking flake8 (5.0.4-4) ... Selecting previously unselected package fontconfig. Preparing to unpack .../078-fontconfig_2.14.1-4_armhf.deb ... Unpacking fontconfig (2.14.1-4) ... Selecting previously unselected package fonts-glyphicons-halflings. Preparing to unpack .../079-fonts-glyphicons-halflings_1.009~3.4.1+dfsg-3_all.deb ... Unpacking fonts-glyphicons-halflings (1.009~3.4.1+dfsg-3) ... Selecting previously unselected package genisoimage. Preparing to unpack .../080-genisoimage_9%3a1.1.11-3.4_armhf.deb ... Unpacking genisoimage (9:1.1.11-3.4) ... Selecting previously unselected package libproxy1v5:armhf. Preparing to unpack .../081-libproxy1v5_0.4.18-1.2_armhf.deb ... Unpacking libproxy1v5:armhf (0.4.18-1.2) ... Selecting previously unselected package glib-networking-common. Preparing to unpack .../082-glib-networking-common_2.74.0-4_all.deb ... Unpacking glib-networking-common (2.74.0-4) ... Selecting previously unselected package glib-networking-services. Preparing to unpack .../083-glib-networking-services_2.74.0-4_armhf.deb ... Unpacking glib-networking-services (2.74.0-4) ... Selecting previously unselected package gsettings-desktop-schemas. Preparing to unpack .../084-gsettings-desktop-schemas_43.0-1_all.deb ... Unpacking gsettings-desktop-schemas (43.0-1) ... Selecting previously unselected package glib-networking:armhf. Preparing to unpack .../085-glib-networking_2.74.0-4_armhf.deb ... Unpacking glib-networking:armhf (2.74.0-4) ... Selecting previously unselected package hunspell-en-us. Preparing to unpack .../086-hunspell-en-us_1%3a2020.12.07-2_all.deb ... Unpacking hunspell-en-us (1:2020.12.07-2) ... Selecting previously unselected package ieee-data. Preparing to unpack .../087-ieee-data_20220827.1_all.deb ... Unpacking ieee-data (20220827.1) ... Selecting previously unselected package libpixman-1-0:armhf. Preparing to unpack .../088-libpixman-1-0_0.42.2-1_armhf.deb ... Unpacking libpixman-1-0:armhf (0.42.2-1) ... Selecting previously unselected package libxcb-render0:armhf. Preparing to unpack .../089-libxcb-render0_1.15-1_armhf.deb ... Unpacking libxcb-render0:armhf (1.15-1) ... Selecting previously unselected package libxcb-shm0:armhf. Preparing to unpack .../090-libxcb-shm0_1.15-1_armhf.deb ... Unpacking libxcb-shm0:armhf (1.15-1) ... Selecting previously unselected package libxrender1:armhf. Preparing to unpack .../091-libxrender1_1%3a0.9.10-1.1_armhf.deb ... Unpacking libxrender1:armhf (1:0.9.10-1.1) ... Selecting previously unselected package libcairo2:armhf. Preparing to unpack .../092-libcairo2_1.16.0-7_armhf.deb ... Unpacking libcairo2:armhf (1.16.0-7) ... Selecting previously unselected package libcairo-gobject2:armhf. Preparing to unpack .../093-libcairo-gobject2_1.16.0-7_armhf.deb ... Unpacking libcairo-gobject2:armhf (1.16.0-7) ... Selecting previously unselected package libfribidi0:armhf. Preparing to unpack .../094-libfribidi0_1.0.8-2.1_armhf.deb ... Unpacking libfribidi0:armhf (1.0.8-2.1) ... Selecting previously unselected package libgraphite2-3:armhf. Preparing to unpack .../095-libgraphite2-3_1.3.14-1_armhf.deb ... Unpacking libgraphite2-3:armhf (1.3.14-1) ... Selecting previously unselected package libharfbuzz0b:armhf. Preparing to unpack .../096-libharfbuzz0b_6.0.0+dfsg-3_armhf.deb ... Unpacking libharfbuzz0b:armhf (6.0.0+dfsg-3) ... Selecting previously unselected package libthai-data. Preparing to unpack .../097-libthai-data_0.1.29-1_all.deb ... Unpacking libthai-data (0.1.29-1) ... Selecting previously unselected package libdatrie1:armhf. Preparing to unpack .../098-libdatrie1_0.2.13-2+b1_armhf.deb ... Unpacking libdatrie1:armhf (0.2.13-2+b1) ... Selecting previously unselected package libthai0:armhf. Preparing to unpack .../099-libthai0_0.1.29-1_armhf.deb ... Unpacking libthai0:armhf (0.1.29-1) ... Selecting previously unselected package libpango-1.0-0:armhf. Preparing to unpack .../100-libpango-1.0-0_1.50.12+ds-1_armhf.deb ... Unpacking libpango-1.0-0:armhf (1.50.12+ds-1) ... Selecting previously unselected package libpangoft2-1.0-0:armhf. Preparing to unpack .../101-libpangoft2-1.0-0_1.50.12+ds-1_armhf.deb ... Unpacking libpangoft2-1.0-0:armhf (1.50.12+ds-1) ... Selecting previously unselected package libpangocairo-1.0-0:armhf. Preparing to unpack .../102-libpangocairo-1.0-0_1.50.12+ds-1_armhf.deb ... Unpacking libpangocairo-1.0-0:armhf (1.50.12+ds-1) ... Selecting previously unselected package librsvg2-2:armhf. Preparing to unpack .../103-librsvg2-2_2.54.7+dfsg-1~deb12u1_armhf.deb ... Unpacking librsvg2-2:armhf (2.54.7+dfsg-1~deb12u1) ... Selecting previously unselected package librsvg2-common:armhf. Preparing to unpack .../104-librsvg2-common_2.54.7+dfsg-1~deb12u1_armhf.deb ... Unpacking librsvg2-common:armhf (2.54.7+dfsg-1~deb12u1) ... Selecting previously unselected package libdouble-conversion3:armhf. Preparing to unpack .../105-libdouble-conversion3_3.2.1-1_armhf.deb ... Unpacking libdouble-conversion3:armhf (3.2.1-1) ... Selecting previously unselected package libgslcblas0:armhf. Preparing to unpack .../106-libgslcblas0_2.7.1+dfsg-5_armhf.deb ... Unpacking libgslcblas0:armhf (2.7.1+dfsg-5) ... Selecting previously unselected package libgsl27:armhf. Preparing to unpack .../107-libgsl27_2.7.1+dfsg-5_armhf.deb ... Unpacking libgsl27:armhf (2.7.1+dfsg-5) ... Selecting previously unselected package lib2geom1.2.0:armhf. Preparing to unpack .../108-lib2geom1.2.0_1.2.2-3_armhf.deb ... Unpacking lib2geom1.2.0:armhf (1.2.2-3) ... Selecting previously unselected package libatk1.0-0:armhf. Preparing to unpack .../109-libatk1.0-0_2.46.0-5_armhf.deb ... Unpacking libatk1.0-0:armhf (2.46.0-5) ... Selecting previously unselected package libglibmm-2.4-1v5:armhf. Preparing to unpack .../110-libglibmm-2.4-1v5_2.66.5-2_armhf.deb ... Unpacking libglibmm-2.4-1v5:armhf (2.66.5-2) ... Selecting previously unselected package libatkmm-1.6-1v5:armhf. Preparing to unpack .../111-libatkmm-1.6-1v5_2.28.3-1_armhf.deb ... Unpacking libatkmm-1.6-1v5:armhf (2.28.3-1) ... Selecting previously unselected package libboost-filesystem1.74.0:armhf. Preparing to unpack .../112-libboost-filesystem1.74.0_1.74.0+ds1-21_armhf.deb ... Unpacking libboost-filesystem1.74.0:armhf (1.74.0+ds1-21) ... Selecting previously unselected package libcairomm-1.0-1v5:armhf. Preparing to unpack .../113-libcairomm-1.0-1v5_1.14.4-2_armhf.deb ... Unpacking libcairomm-1.0-1v5:armhf (1.14.4-2) ... Selecting previously unselected package librevenge-0.0-0:armhf. Preparing to unpack .../114-librevenge-0.0-0_0.0.5-3_armhf.deb ... Unpacking librevenge-0.0-0:armhf (0.0.5-3) ... Selecting previously unselected package libcdr-0.1-1:armhf. Preparing to unpack .../115-libcdr-0.1-1_0.1.6-2+b2_armhf.deb ... Unpacking libcdr-0.1-1:armhf (0.1.6-2+b2) ... Selecting previously unselected package libgc1:armhf. Preparing to unpack .../116-libgc1_1%3a8.2.2-3_armhf.deb ... Unpacking libgc1:armhf (1:8.2.2-3) ... Selecting previously unselected package libgspell-1-common. Preparing to unpack .../117-libgspell-1-common_1.12.0-1_all.deb ... Unpacking libgspell-1-common (1.12.0-1) ... Selecting previously unselected package libaspell15:armhf. Preparing to unpack .../118-libaspell15_0.60.8-4+b1_armhf.deb ... Unpacking libaspell15:armhf (0.60.8-4+b1) ... Selecting previously unselected package libhunspell-1.7-0:armhf. Preparing to unpack .../119-libhunspell-1.7-0_1.7.1-1_armhf.deb ... Unpacking libhunspell-1.7-0:armhf (1.7.1-1) ... Selecting previously unselected package libenchant-2-2:armhf. Preparing to unpack .../120-libenchant-2-2_2.3.3-2_armhf.deb ... Unpacking libenchant-2-2:armhf (2.3.3-2) ... Selecting previously unselected package libxi6:armhf. Preparing to unpack .../121-libxi6_2%3a1.8-1+b1_armhf.deb ... Unpacking libxi6:armhf (2:1.8-1+b1) ... Selecting previously unselected package libatspi2.0-0:armhf. Preparing to unpack .../122-libatspi2.0-0_2.46.0-5_armhf.deb ... Unpacking libatspi2.0-0:armhf (2.46.0-5) ... Selecting previously unselected package libatk-bridge2.0-0:armhf. Preparing to unpack .../123-libatk-bridge2.0-0_2.46.0-5_armhf.deb ... Unpacking libatk-bridge2.0-0:armhf (2.46.0-5) ... Selecting previously unselected package libcolord2:armhf. Preparing to unpack .../124-libcolord2_1.4.6-2.2_armhf.deb ... Unpacking libcolord2:armhf (1.4.6-2.2) ... Selecting previously unselected package libavahi-common-data:armhf. Preparing to unpack .../125-libavahi-common-data_0.8-10_armhf.deb ... Unpacking libavahi-common-data:armhf (0.8-10) ... Selecting previously unselected package libavahi-common3:armhf. Preparing to unpack .../126-libavahi-common3_0.8-10_armhf.deb ... Unpacking libavahi-common3:armhf (0.8-10) ... Selecting previously unselected package libavahi-client3:armhf. Preparing to unpack .../127-libavahi-client3_0.8-10_armhf.deb ... Unpacking libavahi-client3:armhf (0.8-10) ... Selecting previously unselected package libcups2:armhf. Preparing to unpack .../128-libcups2_2.4.2-3+deb12u5_armhf.deb ... Unpacking libcups2:armhf (2.4.2-3+deb12u5) ... Selecting previously unselected package libepoxy0:armhf. Preparing to unpack .../129-libepoxy0_1.5.10-1_armhf.deb ... Unpacking libepoxy0:armhf (1.5.10-1) ... Selecting previously unselected package libwayland-client0:armhf. Preparing to unpack .../130-libwayland-client0_1.21.0-1_armhf.deb ... Unpacking libwayland-client0:armhf (1.21.0-1) ... Selecting previously unselected package libwayland-cursor0:armhf. Preparing to unpack .../131-libwayland-cursor0_1.21.0-1_armhf.deb ... Unpacking libwayland-cursor0:armhf (1.21.0-1) ... Selecting previously unselected package libwayland-egl1:armhf. Preparing to unpack .../132-libwayland-egl1_1.21.0-1_armhf.deb ... Unpacking libwayland-egl1:armhf (1.21.0-1) ... Selecting previously unselected package libxcomposite1:armhf. Preparing to unpack .../133-libxcomposite1_1%3a0.4.5-1_armhf.deb ... Unpacking libxcomposite1:armhf (1:0.4.5-1) ... Selecting previously unselected package libxfixes3:armhf. Preparing to unpack .../134-libxfixes3_1%3a6.0.0-2_armhf.deb ... Unpacking libxfixes3:armhf (1:6.0.0-2) ... Selecting previously unselected package libxcursor1:armhf. Preparing to unpack .../135-libxcursor1_1%3a1.2.1-1_armhf.deb ... Unpacking libxcursor1:armhf (1:1.2.1-1) ... Selecting previously unselected package libxdamage1:armhf. Preparing to unpack .../136-libxdamage1_1%3a1.1.6-1_armhf.deb ... Unpacking libxdamage1:armhf (1:1.1.6-1) ... Selecting previously unselected package libxinerama1:armhf. Preparing to unpack .../137-libxinerama1_2%3a1.1.4-3_armhf.deb ... Unpacking libxinerama1:armhf (2:1.1.4-3) ... Selecting previously unselected package xkb-data. Preparing to unpack .../138-xkb-data_2.35.1-1_all.deb ... Unpacking xkb-data (2.35.1-1) ... Selecting previously unselected package libxkbcommon0:armhf. Preparing to unpack .../139-libxkbcommon0_1.5.0-1_armhf.deb ... Unpacking libxkbcommon0:armhf (1.5.0-1) ... Selecting previously unselected package libxrandr2:armhf. Preparing to unpack .../140-libxrandr2_2%3a1.5.2-2+b1_armhf.deb ... Unpacking libxrandr2:armhf (2:1.5.2-2+b1) ... Selecting previously unselected package libgtk-3-common. Preparing to unpack .../141-libgtk-3-common_3.24.38-2~deb12u1_all.deb ... Unpacking libgtk-3-common (3.24.38-2~deb12u1) ... Selecting previously unselected package libgtk-3-0:armhf. Preparing to unpack .../142-libgtk-3-0_3.24.38-2~deb12u1_armhf.deb ... Unpacking libgtk-3-0:armhf (3.24.38-2~deb12u1) ... Selecting previously unselected package libgspell-1-2:armhf. Preparing to unpack .../143-libgspell-1-2_1.12.0-1+b2_armhf.deb ... Unpacking libgspell-1-2:armhf (1.12.0-1+b2) ... Selecting previously unselected package libpangomm-1.4-1v5:armhf. Preparing to unpack .../144-libpangomm-1.4-1v5_2.46.3-1_armhf.deb ... Unpacking libpangomm-1.4-1v5:armhf (2.46.3-1) ... Selecting previously unselected package libgtkmm-3.0-1v5:armhf. Preparing to unpack .../145-libgtkmm-3.0-1v5_3.24.7-1_armhf.deb ... Unpacking libgtkmm-3.0-1v5:armhf (3.24.7-1) ... Selecting previously unselected package libmagick++-6.q16-8:armhf. Preparing to unpack .../146-libmagick++-6.q16-8_8%3a6.9.11.60+dfsg-1.6_armhf.deb ... Unpacking libmagick++-6.q16-8:armhf (8:6.9.11.60+dfsg-1.6) ... Selecting previously unselected package libnspr4:armhf. Preparing to unpack .../147-libnspr4_2%3a4.35-1_armhf.deb ... Unpacking libnspr4:armhf (2:4.35-1) ... Selecting previously unselected package libnss3:armhf. Preparing to unpack .../148-libnss3_2%3a3.87.1-1_armhf.deb ... Unpacking libnss3:armhf (2:3.87.1-1) ... Selecting previously unselected package libpoppler126:armhf. Preparing to unpack .../149-libpoppler126_22.12.0-2+b1_armhf.deb ... Unpacking libpoppler126:armhf (22.12.0-2+b1) ... Selecting previously unselected package libpoppler-glib8:armhf. Preparing to unpack .../150-libpoppler-glib8_22.12.0-2+b1_armhf.deb ... Unpacking libpoppler-glib8:armhf (22.12.0-2+b1) ... Selecting previously unselected package libpotrace0:armhf. Preparing to unpack .../151-libpotrace0_1.16-2_armhf.deb ... Unpacking libpotrace0:armhf (1.16-2) ... Selecting previously unselected package libsoup2.4-common. Preparing to unpack .../152-libsoup2.4-common_2.74.3-1_all.deb ... Unpacking libsoup2.4-common (2.74.3-1) ... Selecting previously unselected package libsoup2.4-1:armhf. Preparing to unpack .../153-libsoup2.4-1_2.74.3-1_armhf.deb ... Unpacking libsoup2.4-1:armhf (2.74.3-1) ... Selecting previously unselected package libvisio-0.1-1:armhf. Preparing to unpack .../154-libvisio-0.1-1_0.1.7-1+b3_armhf.deb ... Unpacking libvisio-0.1-1:armhf (0.1.7-1+b3) ... Selecting previously unselected package libwpd-0.10-10:armhf. Preparing to unpack .../155-libwpd-0.10-10_0.10.3-2+b1_armhf.deb ... Unpacking libwpd-0.10-10:armhf (0.10.3-2+b1) ... Selecting previously unselected package libwpg-0.3-3:armhf. Preparing to unpack .../156-libwpg-0.3-3_0.3.3-1_armhf.deb ... Unpacking libwpg-0.3-3:armhf (0.3.3-1) ... Selecting previously unselected package libxslt1.1:armhf. Preparing to unpack .../157-libxslt1.1_1.1.35-1_armhf.deb ... Unpacking libxslt1.1:armhf (1.1.35-1) ... Selecting previously unselected package inkscape. Preparing to unpack .../158-inkscape_1.2.2-2+b1_armhf.deb ... Unpacking inkscape (1.2.2-2+b1) ... Selecting previously unselected package libonig5:armhf. Preparing to unpack .../159-libonig5_6.9.8-1_armhf.deb ... Unpacking libonig5:armhf (6.9.8-1) ... Selecting previously unselected package libjq1:armhf. Preparing to unpack .../160-libjq1_1.6-2.1_armhf.deb ... Unpacking libjq1:armhf (1.6-2.1) ... Selecting previously unselected package jq. Preparing to unpack .../161-jq_1.6-2.1_armhf.deb ... Unpacking jq (1.6-2.1) ... Selecting previously unselected package libabsl20220623:armhf. Preparing to unpack .../162-libabsl20220623_20220623.1-1_armhf.deb ... Unpacking libabsl20220623:armhf (20220623.1-1) ... Selecting previously unselected package libc-ares2:armhf. Preparing to unpack .../163-libc-ares2_1.18.1-3_armhf.deb ... Unpacking libc-ares2:armhf (1.18.1-3) ... Selecting previously unselected package libev4:armhf. Preparing to unpack .../164-libev4_1%3a4.33-1_armhf.deb ... Unpacking libev4:armhf (1:4.33-1) ... Selecting previously unselected package x11-common. Preparing to unpack .../165-x11-common_1%3a7.7+23_all.deb ... Unpacking x11-common (1:7.7+23) ... Selecting previously unselected package libice6:armhf. Preparing to unpack .../166-libice6_2%3a1.0.10-1_armhf.deb ... Unpacking libice6:armhf (2:1.0.10-1) ... Selecting previously unselected package libimagequant0:armhf. Preparing to unpack .../167-libimagequant0_2.17.0-1_armhf.deb ... Unpacking libimagequant0:armhf (2.17.0-1) ... Selecting previously unselected package libjs-bootstrap. Preparing to unpack .../168-libjs-bootstrap_3.4.1+dfsg-3_all.deb ... Unpacking libjs-bootstrap (3.4.1+dfsg-3) ... Selecting previously unselected package libjson-perl. Preparing to unpack .../169-libjson-perl_4.10000-1_all.deb ... Unpacking libjson-perl (4.10000-1) ... Selecting previously unselected package libsasl2-modules-db:armhf. Preparing to unpack .../170-libsasl2-modules-db_2.1.28+dfsg-10_armhf.deb ... Unpacking libsasl2-modules-db:armhf (2.1.28+dfsg-10) ... Selecting previously unselected package libsasl2-2:armhf. Preparing to unpack .../171-libsasl2-2_2.1.28+dfsg-10_armhf.deb ... Unpacking libsasl2-2:armhf (2.1.28+dfsg-10) ... Selecting previously unselected package libldap-2.5-0:armhf. Preparing to unpack .../172-libldap-2.5-0_2.5.13+dfsg-5_armhf.deb ... Unpacking libldap-2.5-0:armhf (2.5.13+dfsg-5) ... Selecting previously unselected package mysql-common. Preparing to unpack .../173-mysql-common_5.8+1.1.0_all.deb ... Unpacking mysql-common (5.8+1.1.0) ... Selecting previously unselected package mariadb-common. Preparing to unpack .../174-mariadb-common_1%3a10.11.4-1~deb12u1_all.deb ... Unpacking mariadb-common (1:10.11.4-1~deb12u1) ... Selecting previously unselected package libmariadb3:armhf. Preparing to unpack .../175-libmariadb3_1%3a10.11.4-1~deb12u1_armhf.deb ... Unpacking libmariadb3:armhf (1:10.11.4-1~deb12u1) ... Selecting previously unselected package libnorm1:armhf. Preparing to unpack .../176-libnorm1_1.5.9+dfsg-2_armhf.deb ... Unpacking libnorm1:armhf (1.5.9+dfsg-2) ... Selecting previously unselected package libpgm-5.3-0:armhf. Preparing to unpack .../177-libpgm-5.3-0_5.3.128~dfsg-2_armhf.deb ... Unpacking libpgm-5.3-0:armhf (5.3.128~dfsg-2) ... Selecting previously unselected package libpq5:armhf. Preparing to unpack .../178-libpq5_15.5-0+deb12u1_armhf.deb ... Unpacking libpq5:armhf (15.5-0+deb12u1) ... Selecting previously unselected package libprotobuf32:armhf. Preparing to unpack .../179-libprotobuf32_3.21.12-3_armhf.deb ... Unpacking libprotobuf32:armhf (3.21.12-3) ... Selecting previously unselected package libraqm0:armhf. Preparing to unpack .../180-libraqm0_0.7.0-4.1_armhf.deb ... Unpacking libraqm0:armhf (0.7.0-4.1) ... Selecting previously unselected package librdkafka1:armhf. Preparing to unpack .../181-librdkafka1_2.0.2-1_armhf.deb ... Unpacking librdkafka1:armhf (2.0.2-1) ... Selecting previously unselected package libre2-9:armhf. Preparing to unpack .../182-libre2-9_20220601+dfsg-1+b1_armhf.deb ... Unpacking libre2-9:armhf (20220601+dfsg-1+b1) ... Selecting previously unselected package librsvg2-bin. Preparing to unpack .../183-librsvg2-bin_2.54.7+dfsg-1~deb12u1_armhf.deb ... Unpacking librsvg2-bin (2.54.7+dfsg-1~deb12u1) ... Selecting previously unselected package libsm6:armhf. Preparing to unpack .../184-libsm6_2%3a1.2.3-1_armhf.deb ... Unpacking libsm6:armhf (2:1.2.3-1) ... Selecting previously unselected package libsodium23:armhf. Preparing to unpack .../185-libsodium23_1.0.18-1_armhf.deb ... Unpacking libsodium23:armhf (1.0.18-1) ... Selecting previously unselected package libsubunit-perl. Preparing to unpack .../186-libsubunit-perl_1.4.0-3_all.deb ... Unpacking libsubunit-perl (1.4.0-3) ... Selecting previously unselected package libxt6:armhf. Preparing to unpack .../187-libxt6_1%3a1.2.1-1.1_armhf.deb ... Unpacking libxt6:armhf (1:1.2.1-1.1) ... Selecting previously unselected package libxmu6:armhf. Preparing to unpack .../188-libxmu6_2%3a1.1.3-3_armhf.deb ... Unpacking libxmu6:armhf (2:1.1.3-3) ... Selecting previously unselected package libyaml-0-2:armhf. Preparing to unpack .../189-libyaml-0-2_0.2.5-1_armhf.deb ... Unpacking libyaml-0-2:armhf (0.2.5-1) ... Selecting previously unselected package libzmq5:armhf. Preparing to unpack .../190-libzmq5_4.3.4-6_armhf.deb ... Unpacking libzmq5:armhf (4.3.4-6) ... Selecting previously unselected package lsb-release. Preparing to unpack .../191-lsb-release_12.0-1_all.deb ... Unpacking lsb-release (12.0-1) ... Selecting previously unselected package python3-wheel. Preparing to unpack .../192-python3-wheel_0.38.4-2_all.deb ... Unpacking python3-wheel (0.38.4-2) ... Selecting previously unselected package python3-pip. Preparing to unpack .../193-python3-pip_23.0.1+dfsg-1_all.deb ... Unpacking python3-pip (23.0.1+dfsg-1) ... Selecting previously unselected package openstack-pkg-tools. Preparing to unpack .../194-openstack-pkg-tools_123_all.deb ... Unpacking openstack-pkg-tools (123) ... Selecting previously unselected package pycadf-common. Preparing to unpack .../195-pycadf-common_3.1.1-2_all.deb ... Unpacking pycadf-common (3.1.1-2) ... Selecting previously unselected package pyflakes3. Preparing to unpack .../196-pyflakes3_2.5.0-1_all.deb ... Unpacking pyflakes3 (2.5.0-1) ... Selecting previously unselected package python-babel-localedata. Preparing to unpack .../197-python-babel-localedata_2.10.3-1_all.deb ... Unpacking python-babel-localedata (2.10.3-1) ... Selecting previously unselected package python-os-api-ref-common. Preparing to unpack .../198-python-os-api-ref-common_2.3.0+ds1-1_all.deb ... Unpacking python-os-api-ref-common (2.3.0+ds1-1) ... Selecting previously unselected package python-oslosphinx-common. Preparing to unpack .../199-python-oslosphinx-common_4.18.0-5_all.deb ... Unpacking python-oslosphinx-common (4.18.0-5) ... Selecting previously unselected package python-tinycss2-common. Preparing to unpack .../200-python-tinycss2-common_1.2.1-2_all.deb ... Unpacking python-tinycss2-common (1.2.1-2) ... Selecting previously unselected package python3-alabaster. Preparing to unpack .../201-python3-alabaster_0.7.12-1_all.deb ... Unpacking python3-alabaster (0.7.12-1) ... Selecting previously unselected package python3-all. Preparing to unpack .../202-python3-all_3.11.2-1+b1_armhf.deb ... Unpacking python3-all (3.11.2-1+b1) ... Selecting previously unselected package python3-vine. Preparing to unpack .../203-python3-vine_5.0.0+dfsg-3_all.deb ... Unpacking python3-vine (5.0.0+dfsg-3) ... Selecting previously unselected package python3-amqp. Preparing to unpack .../204-python3-amqp_5.1.1-1_all.deb ... Unpacking python3-amqp (5.1.1-1) ... Selecting previously unselected package python3-amqplib. Preparing to unpack .../205-python3-amqplib_1.0.2-3_all.deb ... Unpacking python3-amqplib (1.0.2-3) ... Selecting previously unselected package python3-anyjson. Preparing to unpack .../206-python3-anyjson_0.3.3-5_all.deb ... Unpacking python3-anyjson (0.3.3-5) ... Selecting previously unselected package python3-appdirs. Preparing to unpack .../207-python3-appdirs_1.4.4-3_all.deb ... Unpacking python3-appdirs (1.4.4-3) ... Selecting previously unselected package python3-async-timeout. Preparing to unpack .../208-python3-async-timeout_4.0.2-1_all.deb ... Unpacking python3-async-timeout (4.0.2-1) ... Selecting previously unselected package python3-attr. Preparing to unpack .../209-python3-attr_22.2.0-1_all.deb ... Unpacking python3-attr (22.2.0-1) ... Selecting previously unselected package python3-six. Preparing to unpack .../210-python3-six_1.16.0-4_all.deb ... Unpacking python3-six (1.16.0-4) ... Selecting previously unselected package python3-pbr. Preparing to unpack .../211-python3-pbr_5.10.0-2_all.deb ... Unpacking python3-pbr (5.10.0-2) ... Selecting previously unselected package python3-wrapt. Preparing to unpack .../212-python3-wrapt_1.14.1-2+b2_armhf.deb ... Unpacking python3-wrapt (1.14.1-2+b2) ... Selecting previously unselected package python3-debtcollector. Preparing to unpack .../213-python3-debtcollector_2.5.0-2_all.deb ... Unpacking python3-debtcollector (2.5.0-2) ... Selecting previously unselected package python3-wcwidth. Preparing to unpack .../214-python3-wcwidth_0.2.5+dfsg1-1.1_all.deb ... Unpacking python3-wcwidth (0.2.5+dfsg1-1.1) ... Selecting previously unselected package python3-prettytable. Preparing to unpack .../215-python3-prettytable_3.6.0-1_all.deb ... Unpacking python3-prettytable (3.6.0-1) ... Selecting previously unselected package python3-automaton. Preparing to unpack .../216-python3-automaton_3.0.1-2_all.deb ... Unpacking python3-automaton (3.0.1-2) ... Selecting previously unselected package python3-autopage. Preparing to unpack .../217-python3-autopage_0.4.0-3_all.deb ... Unpacking python3-autopage (0.4.0-3) ... Selecting previously unselected package python3-tz. Preparing to unpack .../218-python3-tz_2022.7.1-4_all.deb ... Unpacking python3-tz (2022.7.1-4) ... Selecting previously unselected package python3-babel. Preparing to unpack .../219-python3-babel_2.10.3-1_all.deb ... Unpacking python3-babel (2.10.3-1) ... Selecting previously unselected package python3-bashate. Preparing to unpack .../220-python3-bashate_2.1.0-2_all.deb ... Unpacking python3-bashate (2.1.0-2) ... Selecting previously unselected package python3-cffi-backend:armhf. Preparing to unpack .../221-python3-cffi-backend_1.15.1-5+b1_armhf.deb ... Unpacking python3-cffi-backend:armhf (1.15.1-5+b1) ... Selecting previously unselected package python3-bcrypt. Preparing to unpack .../222-python3-bcrypt_3.2.2-1_armhf.deb ... Unpacking python3-bcrypt (3.2.2-1) ... Selecting previously unselected package python3-memcache. Preparing to unpack .../223-python3-memcache_1.59-5_all.deb ... Unpacking python3-memcache (1.59-5) ... Selecting previously unselected package python3-uhashring. Preparing to unpack .../224-python3-uhashring_2.1-3_all.deb ... Unpacking python3-uhashring (2.1-3) ... Selecting previously unselected package python3-binary-memcached. Preparing to unpack .../225-python3-binary-memcached_0.31.1+dfsg1-2_all.deb ... Unpacking python3-binary-memcached (0.31.1+dfsg1-2) ... Selecting previously unselected package python3-blinker. Preparing to unpack .../226-python3-blinker_1.5-1_all.deb ... Unpacking python3-blinker (1.5-1) ... Selecting previously unselected package python3-funcparserlib. Preparing to unpack .../227-python3-funcparserlib_1.0.0-0.2_all.deb ... Unpacking python3-funcparserlib (1.0.0-0.2) ... Selecting previously unselected package python3-pil:armhf. Preparing to unpack .../228-python3-pil_9.4.0-1.1+b1_armhf.deb ... Unpacking python3-pil:armhf (9.4.0-1.1+b1) ... Selecting previously unselected package python3-webcolors. Preparing to unpack .../229-python3-webcolors_1.11.1-1_all.deb ... Unpacking python3-webcolors (1.11.1-1) ... Selecting previously unselected package python3-roman. Preparing to unpack .../230-python3-roman_3.3-3_all.deb ... Unpacking python3-roman (3.3-3) ... Selecting previously unselected package python3-docutils. Preparing to unpack .../231-python3-docutils_0.19+dfsg-6_all.deb ... Unpacking python3-docutils (0.19+dfsg-6) ... Selecting previously unselected package python3-reportlab-accel:armhf. Preparing to unpack .../232-python3-reportlab-accel_3.6.12-1+b1_armhf.deb ... Unpacking python3-reportlab-accel:armhf (3.6.12-1+b1) ... Selecting previously unselected package python3-reportlab. Preparing to unpack .../233-python3-reportlab_3.6.12-1_all.deb ... Unpacking python3-reportlab (3.6.12-1) ... Selecting previously unselected package python3-blockdiag. Preparing to unpack .../234-python3-blockdiag_2.0.1+dfsg-1_all.deb ... Unpacking python3-blockdiag (2.0.1+dfsg-1) ... Selecting previously unselected package python3-soupsieve. Preparing to unpack .../235-python3-soupsieve_2.3.2-1_all.deb ... Unpacking python3-soupsieve (2.3.2-1) ... Selecting previously unselected package python3-bs4. Preparing to unpack .../236-python3-bs4_4.11.2-2_all.deb ... Unpacking python3-bs4 (4.11.2-2) ... Selecting previously unselected package python3-cachetools. Preparing to unpack .../237-python3-cachetools_5.2.0-1_all.deb ... Unpacking python3-cachetools (5.2.0-1) ... Selecting previously unselected package python3-ply. Preparing to unpack .../238-python3-ply_3.11-5_all.deb ... Unpacking python3-ply (3.11-5) ... Selecting previously unselected package python3-pycparser. Preparing to unpack .../239-python3-pycparser_2.21-1_all.deb ... Unpacking python3-pycparser (2.21-1) ... Selecting previously unselected package python3-cffi. Preparing to unpack .../240-python3-cffi_1.15.1-5_all.deb ... Unpacking python3-cffi (1.15.1-5) ... Selecting previously unselected package python3-xcffib. Preparing to unpack .../241-python3-xcffib_0.11.1-4_all.deb ... Unpacking python3-xcffib (0.11.1-4) ... Selecting previously unselected package python3-cairocffi. Preparing to unpack .../242-python3-cairocffi_1.4.0-1_all.deb ... Unpacking python3-cairocffi (1.4.0-1) ... Selecting previously unselected package python3-lxml:armhf. Preparing to unpack .../243-python3-lxml_4.9.2-1+b1_armhf.deb ... Unpacking python3-lxml:armhf (4.9.2-1+b1) ... Selecting previously unselected package python3-webencodings. Preparing to unpack .../244-python3-webencodings_0.5.1-5_all.deb ... Unpacking python3-webencodings (0.5.1-5) ... Selecting previously unselected package python3-tinycss2. Preparing to unpack .../245-python3-tinycss2_1.2.1-2_all.deb ... Unpacking python3-tinycss2 (1.2.1-2) ... Selecting previously unselected package python3-cssselect2. Preparing to unpack .../246-python3-cssselect2_0.7.0-1_all.deb ... Unpacking python3-cssselect2 (0.7.0-1) ... Selecting previously unselected package python3-defusedxml. Preparing to unpack .../247-python3-defusedxml_0.7.1-2_all.deb ... Unpacking python3-defusedxml (0.7.1-2) ... Selecting previously unselected package python3-cairosvg. Preparing to unpack .../248-python3-cairosvg_2.5.2-1.1+deb12u1_all.deb ... Unpacking python3-cairosvg (2.5.2-1.1+deb12u1) ... Selecting previously unselected package python3-certifi. Preparing to unpack .../249-python3-certifi_2022.9.24-1_all.deb ... Unpacking python3-certifi (2022.9.24-1) ... Selecting previously unselected package python3-chardet. Preparing to unpack .../250-python3-chardet_5.1.0+dfsg-2_all.deb ... Unpacking python3-chardet (5.1.0+dfsg-2) ... Selecting previously unselected package python3-charset-normalizer. Preparing to unpack .../251-python3-charset-normalizer_3.0.1-2_all.deb ... Unpacking python3-charset-normalizer (3.0.1-2) ... Selecting previously unselected package python3-iso8601. Preparing to unpack .../252-python3-iso8601_1.0.2-1_all.deb ... Unpacking python3-iso8601 (1.0.2-1) ... Selecting previously unselected package python3-cryptography. Preparing to unpack .../253-python3-cryptography_38.0.4-3_armhf.deb ... Unpacking python3-cryptography (38.0.4-3) ... Selecting previously unselected package python3-jwt. Preparing to unpack .../254-python3-jwt_2.6.0-1_all.deb ... Unpacking python3-jwt (2.6.0-1) ... Selecting previously unselected package python3-oauthlib. Preparing to unpack .../255-python3-oauthlib_3.2.2-1_all.deb ... Unpacking python3-oauthlib (3.2.2-1) ... Selecting previously unselected package python3-os-service-types. Preparing to unpack .../256-python3-os-service-types_1.7.0-2_all.deb ... Unpacking python3-os-service-types (1.7.0-2) ... Selecting previously unselected package python3-idna. Preparing to unpack .../257-python3-idna_3.3-1_all.deb ... Unpacking python3-idna (3.3-1) ... Selecting previously unselected package python3-urllib3. Preparing to unpack .../258-python3-urllib3_1.26.12-1_all.deb ... Unpacking python3-urllib3 (1.26.12-1) ... Selecting previously unselected package python3-requests. Preparing to unpack .../259-python3-requests_2.28.1+dfsg-1_all.deb ... Unpacking python3-requests (2.28.1+dfsg-1) ... Selecting previously unselected package python3-stevedore. Preparing to unpack .../260-python3-stevedore_4.0.2-2_all.deb ... Unpacking python3-stevedore (4.0.2-2) ... Selecting previously unselected package python3-keystoneauth1. Preparing to unpack .../261-python3-keystoneauth1_5.0.0-2_all.deb ... Unpacking python3-keystoneauth1 (5.0.0-2) ... Selecting previously unselected package python3-oslo.i18n. Preparing to unpack .../262-python3-oslo.i18n_5.1.0-3_all.deb ... Unpacking python3-oslo.i18n (5.1.0-3) ... Selecting previously unselected package python3-netaddr. Preparing to unpack .../263-python3-netaddr_0.8.0-2_all.deb ... Unpacking python3-netaddr (0.8.0-2) ... Selecting previously unselected package python3-netifaces:armhf. Preparing to unpack .../264-python3-netifaces_0.11.0-2+b1_armhf.deb ... Unpacking python3-netifaces:armhf (0.11.0-2+b1) ... Selecting previously unselected package python3-packaging. Preparing to unpack .../265-python3-packaging_23.0-1_all.deb ... Unpacking python3-packaging (23.0-1) ... Selecting previously unselected package python3-pyparsing. Preparing to unpack .../266-python3-pyparsing_3.0.9-1_all.deb ... Unpacking python3-pyparsing (3.0.9-1) ... Selecting previously unselected package python3-oslo.utils. Preparing to unpack .../267-python3-oslo.utils_6.0.1-2_all.deb ... Unpacking python3-oslo.utils (6.0.1-2) ... Selecting previously unselected package python3-simplejson. Preparing to unpack .../268-python3-simplejson_3.18.3-1_armhf.deb ... Unpacking python3-simplejson (3.18.3-1) ... Selecting previously unselected package python3-cinderclient. Preparing to unpack .../269-python3-cinderclient_1%3a9.1.0-3_all.deb ... Unpacking python3-cinderclient (1:9.1.0-3) ... Selecting previously unselected package xclip. Preparing to unpack .../270-xclip_0.13-2_armhf.deb ... Unpacking xclip (0.13-2) ... Selecting previously unselected package python3-pyperclip. Preparing to unpack .../271-python3-pyperclip_1.8.2-2_all.deb ... Unpacking python3-pyperclip (1.8.2-2) ... Selecting previously unselected package python3-cmd2. Preparing to unpack .../272-python3-cmd2_2.4.2+ds-3_all.deb ... Unpacking python3-cmd2 (2.4.2+ds-3) ... Selecting previously unselected package python3-yaml. Preparing to unpack .../273-python3-yaml_6.0-3+b2_armhf.deb ... Unpacking python3-yaml (6.0-3+b2) ... Selecting previously unselected package python3-cliff. Preparing to unpack .../274-python3-cliff_4.0.0-2_all.deb ... Unpacking python3-cliff (4.0.0-2) ... Selecting previously unselected package python3-confluent-kafka. Preparing to unpack .../275-python3-confluent-kafka_1.7.0-4_armhf.deb ... Unpacking python3-confluent-kafka (1.7.0-4) ... Selecting previously unselected package python3-coverage. Preparing to unpack .../276-python3-coverage_6.5.0+dfsg1-2+b1_armhf.deb ... Unpacking python3-coverage (6.5.0+dfsg1-2+b1) ... Selecting previously unselected package python3-dateutil. Preparing to unpack .../277-python3-dateutil_2.8.2-2_all.deb ... Unpacking python3-dateutil (2.8.2-2) ... Selecting previously unselected package python3-ddt. Preparing to unpack .../278-python3-ddt_1.6.0-2_all.deb ... Unpacking python3-ddt (1.6.0-2) ... Selecting previously unselected package python3-decorator. Preparing to unpack .../279-python3-decorator_5.1.1-3_all.deb ... Unpacking python3-decorator (5.1.1-3) ... Selecting previously unselected package python3-deprecated. Preparing to unpack .../280-python3-deprecated_1.2.13-3_all.deb ... Unpacking python3-deprecated (1.2.13-3) ... Selecting previously unselected package python3-deprecation. Preparing to unpack .../281-python3-deprecation_2.1.0-2_all.deb ... Unpacking python3-deprecation (2.1.0-2) ... Selecting previously unselected package python3-dnspython. Preparing to unpack .../282-python3-dnspython_2.3.0-1_all.deb ... Unpacking python3-dnspython (2.3.0-1) ... Selecting previously unselected package python3-restructuredtext-lint. Preparing to unpack .../283-python3-restructuredtext-lint_1.3.2-2_all.deb ... Unpacking python3-restructuredtext-lint (1.3.2-2) ... Selecting previously unselected package python3-pygments. Preparing to unpack .../284-python3-pygments_2.14.0+dfsg-1_all.deb ... Unpacking python3-pygments (2.14.0+dfsg-1) ... Selecting previously unselected package python3-doc8. Preparing to unpack .../285-python3-doc8_0.10.1-1_all.deb ... Unpacking python3-doc8 (0.10.1-1) ... Selecting previously unselected package python3-dogpile.cache. Preparing to unpack .../286-python3-dogpile.cache_1.1.8-2_all.deb ... Unpacking python3-dogpile.cache (1.1.8-2) ... Selecting previously unselected package python3-dracclient. Preparing to unpack .../287-python3-dracclient_3.1.0-3_all.deb ... Unpacking python3-dracclient (3.1.0-3) ... Selecting previously unselected package python3-dulwich. Preparing to unpack .../288-python3-dulwich_0.21.2-1+b1_armhf.deb ... Unpacking python3-dulwich (0.21.2-1+b1) ... Selecting previously unselected package python3-protobuf. Preparing to unpack .../289-python3-protobuf_3.21.12-3_armhf.deb ... Unpacking python3-protobuf (3.21.12-3) ... Selecting previously unselected package python3-grpcio. Preparing to unpack .../290-python3-grpcio_1.51.1-3+b1_armhf.deb ... Unpacking python3-grpcio (1.51.1-3+b1) ... Selecting previously unselected package python3-tenacity. Preparing to unpack .../291-python3-tenacity_8.2.1-1_all.deb ... Unpacking python3-tenacity (8.2.1-1) ... Selecting previously unselected package python3-etcd3. Preparing to unpack .../292-python3-etcd3_0.12.0-2_all.deb ... Unpacking python3-etcd3 (0.12.0-2) ... Selecting previously unselected package python3-futurist. Preparing to unpack .../293-python3-futurist_2.4.1-2_all.deb ... Unpacking python3-futurist (2.4.1-2) ... Selecting previously unselected package python3-etcd3gw. Preparing to unpack .../294-python3-etcd3gw_2.0.0-2_all.deb ... Unpacking python3-etcd3gw (2.0.0-2) ... Selecting previously unselected package python3-monotonic. Preparing to unpack .../295-python3-monotonic_1.6-2_all.deb ... Unpacking python3-monotonic (1.6-2) ... Selecting previously unselected package python3-eventlet. Preparing to unpack .../296-python3-eventlet_0.33.1-4_all.deb ... Unpacking python3-eventlet (0.33.1-4) ... Selecting previously unselected package python3-extras. Preparing to unpack .../297-python3-extras_1.0.0-4_all.deb ... Unpacking python3-extras (1.0.0-4) ... Selecting previously unselected package python3-fasteners. Preparing to unpack .../298-python3-fasteners_0.17.3-2_all.deb ... Unpacking python3-fasteners (0.17.3-2) ... Selecting previously unselected package python3-testtools. Preparing to unpack .../299-python3-testtools_2.5.0-4_all.deb ... Unpacking python3-testtools (2.5.0-4) ... Selecting previously unselected package python3-fixtures. Preparing to unpack .../300-python3-fixtures_4.0.1-2_all.deb ... Unpacking python3-fixtures (4.0.1-2) ... Selecting previously unselected package python3-future. Preparing to unpack .../301-python3-future_0.18.2-6_all.deb ... Unpacking python3-future (0.18.2-6) ... Selecting previously unselected package python3-zope.event. Preparing to unpack .../302-python3-zope.event_4.4-3_all.deb ... Unpacking python3-zope.event (4.4-3) ... Selecting previously unselected package python3-zope.interface. Preparing to unpack .../303-python3-zope.interface_5.5.2-1+b1_armhf.deb ... Unpacking python3-zope.interface (5.5.2-1+b1) ... Selecting previously unselected package python3-gevent. Preparing to unpack .../304-python3-gevent_22.10.2-3_armhf.deb ... Unpacking python3-gevent (22.10.2-3) ... Selecting previously unselected package python3-openssl. Preparing to unpack .../305-python3-openssl_23.0.0-1_all.deb ... Unpacking python3-openssl (23.0.0-1) ... Selecting previously unselected package python3-json-pointer. Preparing to unpack .../306-python3-json-pointer_2.3-2_all.deb ... Unpacking python3-json-pointer (2.3-2) ... Selecting previously unselected package python3-jsonpatch. Preparing to unpack .../307-python3-jsonpatch_1.32-2_all.deb ... Unpacking python3-jsonpatch (1.32-2) ... Selecting previously unselected package python3-pyrsistent:armhf. Preparing to unpack .../308-python3-pyrsistent_0.18.1-1+b3_armhf.deb ... Unpacking python3-pyrsistent:armhf (0.18.1-1+b3) ... Selecting previously unselected package python3-jsonschema. Preparing to unpack .../309-python3-jsonschema_4.10.3-1_all.deb ... Unpacking python3-jsonschema (4.10.3-1) ... Selecting previously unselected package python3-warlock. Preparing to unpack .../310-python3-warlock_2.0.1-2_all.deb ... Unpacking python3-warlock (2.0.1-2) ... Selecting previously unselected package python3-glanceclient. Preparing to unpack .../311-python3-glanceclient_1%3a4.1.0-2_all.deb ... Unpacking python3-glanceclient (1:4.1.0-2) ... Selecting previously unselected package python3-hacking. Preparing to unpack .../312-python3-hacking_4.1.0-2_all.deb ... Unpacking python3-hacking (4.1.0-2) ... Selecting previously unselected package python3-ifaddr. Preparing to unpack .../313-python3-ifaddr_0.1.7-2_all.deb ... Unpacking python3-ifaddr (0.1.7-2) ... Selecting previously unselected package python3-imagesize. Preparing to unpack .../314-python3-imagesize_1.4.1-1_all.deb ... Unpacking python3-imagesize (1.4.1-1) ... Selecting previously unselected package python3-jmespath. Preparing to unpack .../315-python3-jmespath_1.0.1-1_all.deb ... Unpacking python3-jmespath (1.0.1-1) ... Selecting previously unselected package python3-munch. Preparing to unpack .../316-python3-munch_2.5.0-2_all.deb ... Unpacking python3-munch (2.5.0-2) ... Selecting previously unselected package python3-requestsexceptions. Preparing to unpack .../317-python3-requestsexceptions_1.4.0-3_all.deb ... Unpacking python3-requestsexceptions (1.4.0-3) ... Selecting previously unselected package python3-openstacksdk. Preparing to unpack .../318-python3-openstacksdk_0.101.0-2_all.deb ... Unpacking python3-openstacksdk (0.101.0-2) ... Selecting previously unselected package python3-osc-lib. Preparing to unpack .../319-python3-osc-lib_2.6.2-2_all.deb ... Unpacking python3-osc-lib (2.6.2-2) ... Selecting previously unselected package python3-ironic-inspector-client. Preparing to unpack .../320-python3-ironic-inspector-client_4.8.0-2_all.deb ... Unpacking python3-ironic-inspector-client (4.8.0-2) ... Selecting previously unselected package python3-oslo.context. Preparing to unpack .../321-python3-oslo.context_5.0.0-2_all.deb ... Unpacking python3-oslo.context (5.0.0-2) ... Selecting previously unselected package python3-msgpack. Preparing to unpack .../322-python3-msgpack_1.0.3-2+b1_armhf.deb ... Unpacking python3-msgpack (1.0.3-2+b1) ... Selecting previously unselected package python3-oslo.serialization. Preparing to unpack .../323-python3-oslo.serialization_5.0.0-2_all.deb ... Unpacking python3-oslo.serialization (5.0.0-2) ... Selecting previously unselected package python3-pyinotify. Preparing to unpack .../324-python3-pyinotify_0.9.6-2_all.deb ... Unpacking python3-pyinotify (0.9.6-2) ... Selecting previously unselected package python3-oslo.log. Preparing to unpack .../325-python3-oslo.log_5.0.1-1_all.deb ... Unpacking python3-oslo.log (5.0.1-1) ... Selecting previously unselected package python3-rfc3986. Preparing to unpack .../326-python3-rfc3986_1.5.0-2_all.deb ... Unpacking python3-rfc3986 (1.5.0-2) ... Selecting previously unselected package python3-oslo.config. Preparing to unpack .../327-python3-oslo.config_1%3a9.0.0-3_all.deb ... Unpacking python3-oslo.config (1:9.0.0-3) ... Selecting previously unselected package python3-oslo.concurrency. Preparing to unpack .../328-python3-oslo.concurrency_5.0.1-3_all.deb ... Unpacking python3-oslo.concurrency (5.0.1-3) ... Selecting previously unselected package python3-webob. Preparing to unpack .../329-python3-webob_1%3a1.8.6-3_all.deb ... Unpacking python3-webob (1:1.8.6-3) ... Selecting previously unselected package python3-zeroconf. Preparing to unpack .../330-python3-zeroconf_0.47.3-1_all.deb ... Unpacking python3-zeroconf (0.47.3-1) ... Selecting previously unselected package python3-ironic-lib. Preparing to unpack .../331-python3-ironic-lib_5.3.0-2_all.deb ... Unpacking python3-ironic-lib (5.3.0-2) ... Selecting previously unselected package python3-jaraco.classes. Preparing to unpack .../332-python3-jaraco.classes_3.2.1-3_all.deb ... Unpacking python3-jaraco.classes (3.2.1-3) ... Selecting previously unselected package python3-jeepney. Preparing to unpack .../333-python3-jeepney_0.8.0-3_all.deb ... Unpacking python3-jeepney (0.8.0-3) ... Selecting previously unselected package python3-jinja2. Preparing to unpack .../334-python3-jinja2_3.1.2-1_all.deb ... Unpacking python3-jinja2 (3.1.2-1) ... Selecting previously unselected package python3-kerberos. Preparing to unpack .../335-python3-kerberos_1.1.14-3.1+b7_armhf.deb ... Unpacking python3-kerberos (1.1.14-3.1+b7) ... Selecting previously unselected package python3-pure-sasl. Preparing to unpack .../336-python3-pure-sasl_0.5.1+dfsg1-2_all.deb ... Unpacking python3-pure-sasl (0.5.1+dfsg1-2) ... Selecting previously unselected package python3-kazoo. Preparing to unpack .../337-python3-kazoo_2.8.0-2_all.deb ... Unpacking python3-kazoo (2.8.0-2) ... Selecting previously unselected package python3-secretstorage. Preparing to unpack .../338-python3-secretstorage_3.3.3-1_all.deb ... Unpacking python3-secretstorage (3.3.3-1) ... Selecting previously unselected package python3-keyring. Preparing to unpack .../339-python3-keyring_23.9.3-2_all.deb ... Unpacking python3-keyring (23.9.3-2) ... Selecting previously unselected package python3-keystoneclient. Preparing to unpack .../340-python3-keystoneclient_1%3a5.0.1-3_all.deb ... Unpacking python3-keystoneclient (1:5.0.1-3) ... Selecting previously unselected package python3-oslo.cache. Preparing to unpack .../341-python3-oslo.cache_3.2.0-1_all.deb ... Unpacking python3-oslo.cache (3.2.0-1) ... Selecting previously unselected package python3-pycadf. Preparing to unpack .../342-python3-pycadf_3.1.1-2_all.deb ... Unpacking python3-pycadf (3.1.1-2) ... Selecting previously unselected package python3-keystonemiddleware. Preparing to unpack .../343-python3-keystonemiddleware_10.1.0-4_all.deb ... Unpacking python3-keystonemiddleware (10.1.0-4) ... Selecting previously unselected package python3-kombu. Preparing to unpack .../344-python3-kombu_5.2.4-1_all.deb ... Unpacking python3-kombu (5.2.4-1) ... Selecting previously unselected package python3-logutils. Preparing to unpack .../345-python3-logutils_0.3.5-1_all.deb ... Unpacking python3-logutils (0.3.5-1) ... Selecting previously unselected package python3-sqlparse. Preparing to unpack .../346-python3-sqlparse_0.4.2-1_all.deb ... Unpacking python3-sqlparse (0.4.2-1) ... Selecting previously unselected package python3-tempita. Preparing to unpack .../347-python3-tempita_0.5.2-7_all.deb ... Unpacking python3-tempita (0.5.2-7) ... Selecting previously unselected package python3-migrate. Preparing to unpack .../348-python3-migrate_0.13.0-3_all.deb ... Unpacking python3-migrate (0.13.0-3) ... Selecting previously unselected package python3-mysqldb. Preparing to unpack .../349-python3-mysqldb_1.4.6-2+b1_armhf.deb ... Unpacking python3-mysqldb (1.4.6-2+b1) ... Selecting previously unselected package sphinx-common. Preparing to unpack .../350-sphinx-common_5.3.0-4_all.deb ... Unpacking sphinx-common (5.3.0-4) ... Selecting previously unselected package python3-snowballstemmer. Preparing to unpack .../351-python3-snowballstemmer_2.2.0-2_all.deb ... Unpacking python3-snowballstemmer (2.2.0-2) ... Selecting previously unselected package python3-sphinx. Preparing to unpack .../352-python3-sphinx_5.3.0-4_all.deb ... Unpacking python3-sphinx (5.3.0-4) ... Selecting previously unselected package python3-openstackdocstheme. Preparing to unpack .../353-python3-openstackdocstheme_1.20.0-5_all.deb ... Unpacking python3-openstackdocstheme (1.20.0-5) ... Selecting previously unselected package python3-oslosphinx. Preparing to unpack .../354-python3-oslosphinx_4.18.0-5_all.deb ... Unpacking python3-oslosphinx (4.18.0-5) ... Selecting previously unselected package python3-os-api-ref. Preparing to unpack .../355-python3-os-api-ref_2.3.0+ds1-1_all.deb ... Unpacking python3-os-api-ref (2.3.0+ds1-1) ... Selecting previously unselected package python3-os-client-config. Preparing to unpack .../356-python3-os-client-config_2.1.0-1_all.deb ... Unpacking python3-os-client-config (2.1.0-1) ... Selecting previously unselected package python3-os-traits. Preparing to unpack .../357-python3-os-traits_2.9.0-2_all.deb ... Unpacking python3-os-traits (2.9.0-2) ... Selecting previously unselected package python3-psycopg2. Preparing to unpack .../358-python3-psycopg2_2.9.5-1+b1_armhf.deb ... Unpacking python3-psycopg2 (2.9.5-1+b1) ... Selecting previously unselected package python3-pymysql. Preparing to unpack .../359-python3-pymysql_1.0.2-2_all.deb ... Unpacking python3-pymysql (1.0.2-2) ... Selecting previously unselected package python3-unittest2. Preparing to unpack .../360-python3-unittest2_1.1.0-9_all.deb ... Unpacking python3-unittest2 (1.1.0-9) ... Selecting previously unselected package python3-testresources. Preparing to unpack .../361-python3-testresources_2.0.1-4_all.deb ... Unpacking python3-testresources (2.0.1-4) ... Selecting previously unselected package python3-testscenarios. Preparing to unpack .../362-python3-testscenarios_0.5.0-3_all.deb ... Unpacking python3-testscenarios (0.5.0-3) ... Selecting previously unselected package python3-oslo.db. Preparing to unpack .../363-python3-oslo.db_12.1.0-3_all.deb ... Unpacking python3-oslo.db (12.1.0-3) ... Selecting previously unselected package python3-prometheus-client. Preparing to unpack .../364-python3-prometheus-client_0.16.0-0.1_all.deb ... Unpacking python3-prometheus-client (0.16.0-0.1) ... Selecting previously unselected package python3-oslo.metrics. Preparing to unpack .../365-python3-oslo.metrics_0.5.0-2_all.deb ... Unpacking python3-oslo.metrics (0.5.0-2) ... Selecting previously unselected package python3-statsd. Preparing to unpack .../366-python3-statsd_4.0.1-1_all.deb ... Unpacking python3-statsd (4.0.1-1) ... Selecting previously unselected package python3-oslo.middleware. Preparing to unpack .../367-python3-oslo.middleware_5.0.0-2_all.deb ... Unpacking python3-oslo.middleware (5.0.0-2) ... Selecting previously unselected package python3-paste. Preparing to unpack .../368-python3-paste_3.5.2+repack-1_all.deb ... Unpacking python3-paste (3.5.2+repack-1) ... Selecting previously unselected package python3-pastedeploy-tpl. Preparing to unpack .../369-python3-pastedeploy-tpl_3.0.1-5_all.deb ... Unpacking python3-pastedeploy-tpl (3.0.1-5) ... Selecting previously unselected package python3-pastedeploy. Preparing to unpack .../370-python3-pastedeploy_3.0.1-5_all.deb ... Unpacking python3-pastedeploy (3.0.1-5) ... Selecting previously unselected package python3-repoze.lru. Preparing to unpack .../371-python3-repoze.lru_0.7-3_all.deb ... Unpacking python3-repoze.lru (0.7-3) ... Selecting previously unselected package python3-routes. Preparing to unpack .../372-python3-routes_2.5.1-3_all.deb ... Unpacking python3-routes (2.5.1-3) ... Selecting previously unselected package python3-yappi. Preparing to unpack .../373-python3-yappi_1.4.0-1+b1_armhf.deb ... Unpacking python3-yappi (1.4.0-1+b1) ... Selecting previously unselected package python3-oslo.service. Preparing to unpack .../374-python3-oslo.service_3.0.0-2_all.deb ... Unpacking python3-oslo.service (3.0.0-2) ... Selecting previously unselected package python3-py. Preparing to unpack .../375-python3-py_1.11.0-1_all.deb ... Unpacking python3-py (1.11.0-1) ... Selecting previously unselected package python3-zmq. Preparing to unpack .../376-python3-zmq_24.0.1-4+b1_armhf.deb ... Unpacking python3-zmq (24.0.1-4+b1) ... Selecting previously unselected package python3-oslo.messaging. Preparing to unpack .../377-python3-oslo.messaging_14.0.0-2_all.deb ... Unpacking python3-oslo.messaging (14.0.0-2) ... Selecting previously unselected package python3-oslo.policy. Preparing to unpack .../378-python3-oslo.policy_4.0.0-2_all.deb ... Unpacking python3-oslo.policy (4.0.0-2) ... Selecting previously unselected package python3-psutil. Preparing to unpack .../379-python3-psutil_5.9.4-1+b1_armhf.deb ... Unpacking python3-psutil (5.9.4-1+b1) ... Selecting previously unselected package python3-oslo.reports. Preparing to unpack .../380-python3-oslo.reports_2.4.0-2_all.deb ... Unpacking python3-oslo.reports (2.4.0-2) ... Selecting previously unselected package python3-oslo.rootwrap. Preparing to unpack .../381-python3-oslo.rootwrap_6.3.1-2_all.deb ... Unpacking python3-oslo.rootwrap (6.3.1-2) ... Selecting previously unselected package python3-oslo.upgradecheck. Preparing to unpack .../382-python3-oslo.upgradecheck_2.0.0-2_all.deb ... Unpacking python3-oslo.upgradecheck (2.0.0-2) ... Selecting previously unselected package python3-oslo.versionedobjects. Preparing to unpack .../383-python3-oslo.versionedobjects_3.0.1-2_all.deb ... Unpacking python3-oslo.versionedobjects (3.0.1-2) ... Selecting previously unselected package python3-voluptuous. Preparing to unpack .../384-python3-voluptuous_0.12.2-1_all.deb ... Unpacking python3-voluptuous (0.12.2-1) ... Selecting previously unselected package python3-subunit. Preparing to unpack .../385-python3-subunit_1.4.0-3_all.deb ... Unpacking python3-subunit (1.4.0-3) ... Selecting previously unselected package subunit. Preparing to unpack .../386-subunit_1.4.0-3_all.deb ... Unpacking subunit (1.4.0-3) ... Selecting previously unselected package python3-stestr. Preparing to unpack .../387-python3-stestr_3.2.1-1_all.deb ... Unpacking python3-stestr (3.2.1-1) ... Selecting previously unselected package python3-oslotest. Preparing to unpack .../388-python3-oslotest_1%3a4.5.0-3_all.deb ... Unpacking python3-oslotest (1:4.5.0-3) ... Selecting previously unselected package python3-osprofiler. Preparing to unpack .../389-python3-osprofiler_3.4.3-2_all.deb ... Unpacking python3-osprofiler (3.4.3-2) ... Selecting previously unselected package python3-simplegeneric. Preparing to unpack .../390-python3-simplegeneric_0.8.1-5_all.deb ... Unpacking python3-simplegeneric (0.8.1-5) ... Selecting previously unselected package python3-singledispatch. Preparing to unpack .../391-python3-singledispatch_3.4.0.3-4_all.deb ... Unpacking python3-singledispatch (3.4.0.3-4) ... Selecting previously unselected package python3-waitress. Preparing to unpack .../392-python3-waitress_2.1.2-2_all.deb ... Unpacking python3-waitress (2.1.2-2) ... Selecting previously unselected package python3-webtest. Preparing to unpack .../393-python3-webtest_3.0.0-2_all.deb ... Unpacking python3-webtest (3.0.0-2) ... Selecting previously unselected package python3-pecan. Preparing to unpack .../394-python3-pecan_1.4.1-1_all.deb ... Unpacking python3-pecan (1.4.1-1) ... Selecting previously unselected package python3-pyasn1. Preparing to unpack .../395-python3-pyasn1_0.4.8-3_all.deb ... Unpacking python3-pyasn1 (0.4.8-3) ... Selecting previously unselected package python3-pycryptodome. Preparing to unpack .../396-python3-pycryptodome_3.11.0+dfsg1-4_armhf.deb ... Unpacking python3-pycryptodome (3.11.0+dfsg1-4) ... Selecting previously unselected package python3-pysmi. Preparing to unpack .../397-python3-pysmi_0.3.2-3_all.deb ... Unpacking python3-pysmi (0.3.2-3) ... Selecting previously unselected package python3-pysnmp4. Preparing to unpack .../398-python3-pysnmp4_4.4.12-2_all.deb ... Unpacking python3-pysnmp4 (4.4.12-2) ... Selecting previously unselected package python3-retrying. Preparing to unpack .../399-python3-retrying_1.3.3-4_all.deb ... Unpacking python3-retrying (1.3.3-4) ... Selecting previously unselected package python3-sushy. Preparing to unpack .../400-python3-sushy_4.3.3-1_all.deb ... Unpacking python3-sushy (4.3.3-1) ... Selecting previously unselected package python3-proliantutils. Preparing to unpack .../401-python3-proliantutils_2.14.0-2_all.deb ... Unpacking python3-proliantutils (2.14.0-2) ... Selecting previously unselected package python3-pycdlib. Preparing to unpack .../402-python3-pycdlib_1.12.0+ds1-4_all.deb ... Unpacking python3-pycdlib (1.12.0+ds1-4) ... Selecting previously unselected package python3-pyghmi. Preparing to unpack .../403-python3-pyghmi_1.5.34-2_all.deb ... Unpacking python3-pyghmi (1.5.34-2) ... Selecting previously unselected package python3-pymemcache. Preparing to unpack .../404-python3-pymemcache_3.5.2-1_all.deb ... Unpacking python3-pymemcache (3.5.2-1) ... Selecting previously unselected package python3-redis. Preparing to unpack .../405-python3-redis_4.3.4-3_all.deb ... Unpacking python3-redis (4.3.4-3) ... Selecting previously unselected package python3-scciclient. Preparing to unpack .../406-python3-scciclient_0.12.3-2_all.deb ... Unpacking python3-scciclient (0.12.3-2) ... Selecting previously unselected package python3-seqdiag. Preparing to unpack .../407-python3-seqdiag_2.0.0+dfsg-1_all.deb ... Unpacking python3-seqdiag (2.0.0+dfsg-1) ... Selecting previously unselected package python3-sphinxcontrib.httpdomain. Preparing to unpack .../408-python3-sphinxcontrib.httpdomain_1.8.0-2_all.deb ... Unpacking python3-sphinxcontrib.httpdomain (1.8.0-2) ... Selecting previously unselected package python3-sphinxcontrib-pecanwsme. Preparing to unpack .../409-python3-sphinxcontrib-pecanwsme_0.10.0-2_all.deb ... Unpacking python3-sphinxcontrib-pecanwsme (0.10.0-2) ... Selecting previously unselected package python3-sphinxcontrib.apidoc. Preparing to unpack .../410-python3-sphinxcontrib.apidoc_0.3.0-2_all.deb ... Unpacking python3-sphinxcontrib.apidoc (0.3.0-2) ... Selecting previously unselected package python3-sphinxcontrib.seqdiag. Preparing to unpack .../411-python3-sphinxcontrib.seqdiag_2.0.0-1_all.deb ... Unpacking python3-sphinxcontrib.seqdiag (2.0.0-1) ... Selecting previously unselected package python3-sphinxcontrib.svg2pdfconverter. Preparing to unpack .../412-python3-sphinxcontrib.svg2pdfconverter_1.2.2-1_all.deb ... Unpacking python3-sphinxcontrib.svg2pdfconverter (1.2.2-1) ... Selecting previously unselected package python3-swiftclient. Preparing to unpack .../413-python3-swiftclient_1%3a4.1.0-2_all.deb ... Unpacking python3-swiftclient (1:4.1.0-2) ... Selecting previously unselected package python3-zake. Preparing to unpack .../414-python3-zake_0.2.2-4_all.deb ... Unpacking python3-zake (0.2.2-4) ... Selecting previously unselected package python3-tooz. Preparing to unpack .../415-python3-tooz_3.1.0-3_all.deb ... Unpacking python3-tooz (3.1.0-3) ... Setting up media-types (10.0.0) ... Setting up libpipeline1:armhf (1.5.7-1) ... Setting up libtext-iconv-perl:armhf (1.7-8) ... Setting up libgraphite2-3:armhf (1.3.14-1) ... Setting up liblcms2-2:armhf (2.14-2) ... Setting up libpixman-1-0:armhf (0.42.2-1) ... Setting up libaom3:armhf (3.6.0-1) ... Setting up mysql-common (5.8+1.1.0) ... update-alternatives: using /etc/mysql/my.cnf.fallback to provide /etc/mysql/my.cnf (my.cnf) in auto mode Setting up libabsl20220623:armhf (20220623.1-1) ... Setting up systemd-sysv (252.19-1~deb12u1) ... Setting up libxau6:armhf (1:1.0.9-1) ... Setting up imagemagick-6-common (8:6.9.11.60+dfsg-1.6) ... Setting up libre2-9:armhf (20220601+dfsg-1+b1) ... Setting up libdouble-conversion3:armhf (3.2.1-1) ... Setting up libsubunit-perl (1.4.0-3) ... Setting up libproxy1v5:armhf (0.4.18-1.2) ... Setting up libpsl5:armhf (0.21.2-1) ... Setting up libsodium23:armhf (1.0.18-1) ... Setting up libicu72:armhf (72.1-3) ... Setting up liblerc4:armhf (4.0.0+ds-2) ... Setting up bsdextrautils (2.38.1-5+b1) ... Setting up wget (1.21.3-1+b1) ... Setting up hicolor-icon-theme (0.17-2) ... Setting up libdatrie1:armhf (0.2.13-2+b1) ... Setting up libgslcblas0:armhf (2.7.1+dfsg-5) ... Setting up libgspell-1-common (1.12.0-1) ... Setting up libmagic-mgc (1:5.44-3) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libyaml-0-2:armhf (0.2.5-1) ... Setting up libglib2.0-0:armhf (2.74.6-2) ... Setting up libaspell15:armhf (0.60.8-4+b1) ... Setting up fonts-glyphicons-halflings (1.009~3.4.1+dfsg-3) ... Setting up libpgm-5.3-0:armhf (5.3.128~dfsg-2) ... Setting up libev4:armhf (1:4.33-1) ... Setting up libdebhelper-perl (13.11.4) ... Setting up libbrotli1:armhf (1.0.9-2+b6) ... Setting up libgdk-pixbuf2.0-common (2.42.10+dfsg-1) ... Setting up libnorm1:armhf (1.5.9+dfsg-2) ... Setting up x11-common (1:7.7+23) ... Running in chroot, ignoring request. Setting up X socket directories... /tmp/.X11-unix /tmp/.ICE-unix. Setting up libmagic1:armhf (1:5.44-3) ... Setting up libdeflate0:armhf (1.14-1) ... Setting up gettext-base (0.21-12) ... Setting up libgsl27:armhf (2.7.1+dfsg-5) ... Setting up m4 (1.4.19-3) ... Setting up xkb-data (2.35.1-1) ... Setting up libboost-filesystem1.74.0:armhf (1.74.0+ds1-21) ... Setting up libc-ares2:armhf (1.18.1-3) ... Setting up file (1:5.44-3) ... Setting up libjbig0:armhf (2.1-6.1) ... Setting up libcolord2:armhf (1.4.6-2.2) ... Setting up librevenge-0.0-0:armhf (0.0.5-3) ... Setting up python-babel-localedata (2.10.3-1) ... Setting up libsasl2-modules-db:armhf (2.1.28+dfsg-10) ... Setting up tzdata (2023c-5+deb12u1) ... Current default time zone: 'Etc/UTC' Local time is now: Sat Jan 6 13:22:58 UTC 2024. Universal Time is now: Sat Jan 6 13:22:58 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libdconf1:armhf (0.40.0-4) ... Setting up mariadb-common (1:10.11.4-1~deb12u1) ... update-alternatives: using /etc/mysql/mariadb.cnf to provide /etc/mysql/my.cnf (my.cnf) in auto mode Setting up autotools-dev (20220109.1) ... Setting up libjpeg62-turbo:armhf (1:2.1.5-2) ... Setting up emacsen-common (3.0.5) ... Setting up libx11-data (2:1.8.4-2+deb12u2) ... Setting up libepoxy0:armhf (1.5.10-1) ... Setting up libnspr4:armhf (2:4.35-1) ... Setting up libavahi-common-data:armhf (0.8-10) ... Setting up libdbus-1-3:armhf (1.14.10-1~deb12u1) ... Setting up libfribidi0:armhf (1.0.8-2.1) ... Setting up libimagequant0:armhf (2.17.0-1) ... Setting up python3-pastedeploy-tpl (3.0.1-5) ... Setting up libproc2-0:armhf (2:4.0.2-3) ... Setting up libpng16-16:armhf (1.6.39-2) ... Setting up autopoint (0.21-12) ... Setting up sudo (1.9.13p3-1+deb12u1) ... Running in chroot, ignoring request. invoke-rc.d: policy-rc.d denied execution of start. Setting up libmariadb3:armhf (1:10.11.4-1~deb12u1) ... Setting up fonts-dejavu-core (2.37-6) ... Setting up libgc1:armhf (1:8.2.2-3) ... Setting up libdav1d6:armhf (1.0.0-2) ... Setting up libltdl7:armhf (2.4.7-5) ... Setting up libfftw3-double3:armhf (3.3.10-1) ... Setting up libsasl2-2:armhf (2.1.28+dfsg-10) ... Setting up librdkafka1:armhf (2.0.2-1) ... Setting up autoconf (2.71-3) ... Setting up libx265-199:armhf (3.5-2+b1) ... Setting up libsoup2.4-common (2.74.3-1) ... Setting up libwebp7:armhf (1.2.4-0.2+deb12u1) ... Setting up pycadf-common (3.1.1-2) ... Setting up libprotobuf32:armhf (3.21.12-3) ... Setting up ieee-data (20220827.1) ... Setting up liblqr-1-0:armhf (0.4.2-2.1) ... Setting up sensible-utils (0.0.17+nmu1) ... Setting up at-spi2-common (2.46.0-5) ... Setting up libtiff6:armhf (4.5.0-6+deb12u1) ... Setting up dbus-session-bus-common (1.14.10-1~deb12u1) ... Setting up libuchardet0:armhf (0.0.7-1) ... Setting up python-oslosphinx-common (4.18.0-5) ... Setting up procps (2:4.0.2-3) ... Setting up python-tinycss2-common (1.2.1-2) ... Setting up libjson-perl (4.10000-1) ... Setting up libopenjp2-7:armhf (2.5.0-2) ... Setting up libsub-override-perl (0.09-4) ... Setting up libthai-data (0.1.29-1) ... Setting up netbase (6.4) ... Setting up sgml-base (1.31) ... Setting up libatk1.0-0:armhf (2.46.0-5) ... Setting up libwayland-egl1:armhf (1.21.0-1) ... Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... Setting up libhunspell-1.7-0:armhf (1.7.1-1) ... Setting up glib-networking-common (2.74.0-4) ... Setting up lsb-release (12.0-1) ... Setting up dbus-system-bus-common (1.14.10-1~deb12u1) ... Setting up libde265-0:armhf (1.0.11-1+deb12u1) ... Setting up openssl (3.0.11-1~deb12u2) ... Setting up libwebpmux3:armhf (1.2.4-0.2+deb12u1) ... Setting up libbsd0:armhf (0.11.7-2) ... Setting up libwpd-0.10-10:armhf (0.10.3-2+b1) ... Setting up mailcap (3.70+nmu1) ... Setting up libelf1:armhf (0.188-2.1) ... Setting up readline-common (8.2-1.3) ... Setting up libxml2:armhf (2.9.14+dfsg-1.3~deb12u1) ... Setting up dbus-bin (1.14.10-1~deb12u1) ... Setting up libonig5:armhf (6.9.8-1) ... Setting up libjs-bootstrap (3.4.1+dfsg-3) ... Setting up libvisio-0.1-1:armhf (0.1.7-1+b3) ... Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... Setting up libxkbcommon0:armhf (1.5.0-1) ... Setting up libpotrace0:armhf (1.16-2) ... Setting up libwayland-client0:armhf (1.21.0-1) ... Setting up automake (1:1.16.5-1.3) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up genisoimage (9:1.1.11-3.4) ... Setting up libfile-stripnondeterminism-perl (1.13.1-1) ... Setting up glib-networking-services (2.74.0-4) ... Setting up libglibmm-2.4-1v5:armhf (2.66.5-2) ... Setting up libice6:armhf (2:1.0.10-1) ... Setting up libxdmcp6:armhf (1:1.1.2-3) ... Setting up libxcb1:armhf (1.15-1) ... Setting up gettext (0.21-12) ... Setting up libzmq5:armhf (4.3.4-6) ... Setting up mime-support (3.66) ... Setting up dictionaries-common (1.29.5) ... Setting up libtool (2.4.7-5) ... Setting up libxcb-render0:armhf (1.15-1) ... Setting up libjq1:armhf (1.6-2.1) ... Setting up fontconfig-config (2.14.1-4) ... Setting up libwebpdemux2:armhf (1.2.4-0.2+deb12u1) ... Setting up libreadline8:armhf (8.2-1.3) ... Setting up libheif1:armhf (1.15.1-1) ... Setting up libavahi-common3:armhf (0.8-10) ... Setting up libnss3:armhf (2:3.87.1-1) ... Setting up libxcb-shm0:armhf (1.15-1) ... Setting up dbus-daemon (1.14.10-1~deb12u1) ... Setting up libcdr-0.1-1:armhf (0.1.6-2+b2) ... Setting up libldap-2.5-0:armhf (2.5.13+dfsg-5) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up libthai0:armhf (0.1.29-1) ... Setting up ca-certificates (20230311) ... Updating certificates in /etc/ssl/certs... 140 added, 0 removed; done. Setting up libfreetype6:armhf (2.12.1+dfsg-5) ... Setting up dbus (1.14.10-1~deb12u1) ... Running in chroot, ignoring request. invoke-rc.d: policy-rc.d denied execution of start. Setting up shared-mime-info (2.2-1) ... Setting up python-os-api-ref-common (2.3.0+ds1-1) ... Setting up libjs-sphinxdoc (5.3.0-4) ... Setting up libwpg-0.3-3:armhf (0.3.3-1) ... Setting up dh-strip-nondeterminism (1.13.1-1) ... Setting up dwz (0.15-1) ... Setting up groff-base (1.22.4-10) ... Setting up libwayland-cursor0:armhf (1.21.0-1) ... Setting up xml-core (0.18+nmu1) ... Setting up jq (1.6-2.1) ... Setting up libxslt1.1:armhf (1.1.35-1) ... Setting up hunspell-en-us (1:2020.12.07-2) ... Setting up libpam-systemd:armhf (252.19-1~deb12u1) ... Setting up libx11-6:armhf (2:1.8.4-2+deb12u2) ... Setting up libharfbuzz0b:armhf (6.0.0+dfsg-3) ... Setting up libgdk-pixbuf-2.0-0:armhf (2.42.10+dfsg-1+b1) ... Setting up libfontconfig1:armhf (2.14.1-4) ... Setting up libatkmm-1.6-1v5:armhf (2.28.3-1) ... Setting up libxcomposite1:armhf (1:0.4.5-1) ... Setting up libsm6:armhf (2:1.2.3-1) ... Setting up libavahi-client3:armhf (0.8-10) ... Setting up gtk-update-icon-cache (3.24.38-2~deb12u1) ... Setting up fontconfig (2.14.1-4) ... Regenerating fonts cache... done. Setting up libxdamage1:armhf (1:1.1.6-1) ... Setting up libxrender1:armhf (1:0.9.10-1.1) ... Setting up libenchant-2-2:armhf (2.3.3-2) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up libpython3.11-stdlib:armhf (3.11.2-6) ... Setting up libpango-1.0-0:armhf (1.50.12+ds-1) ... Setting up libpq5:armhf (15.5-0+deb12u1) ... Setting up libxext6:armhf (2:1.3.4-1+b1) ... Setting up man-db (2.11.2-2) ... Not building database; man-db/auto-update is not 'true'. Created symlink /etc/systemd/system/timers.target.wants/man-db.timer -> /lib/systemd/system/man-db.timer. Setting up libcairo2:armhf (1.16.0-7) ... Setting up libcairomm-1.0-1v5:armhf (1.14.4-2) ... Setting up dbus-user-session (1.14.10-1~deb12u1) ... Setting up libmagickcore-6.q16-6:armhf (8:6.9.11.60+dfsg-1.6) ... Setting up adwaita-icon-theme (43-1) ... update-alternatives: using /usr/share/icons/Adwaita/cursor.theme to provide /usr/share/icons/default/index.theme (x-cursor-theme) in auto mode Setting up libxfixes3:armhf (1:6.0.0-2) ... Setting up libraqm0:armhf (0.7.0-4.1) ... Setting up sphinx-common (5.3.0-4) ... Setting up libxinerama1:armhf (2:1.1.4-3) ... Setting up libxrandr2:armhf (2:1.5.2-2+b1) ... Setting up libxt6:armhf (1:1.2.1-1.1) ... Setting up libpoppler126:armhf (22.12.0-2+b1) ... Setting up libcups2:armhf (2.4.2-3+deb12u5) ... Setting up libmagickwand-6.q16-6:armhf (8:6.9.11.60+dfsg-1.6) ... Setting up libcairo-gobject2:armhf (1.16.0-7) ... Setting up libpangoft2-1.0-0:armhf (1.50.12+ds-1) ... Setting up lib2geom1.2.0:armhf (1.2.2-3) ... Setting up libmagick++-6.q16-8:armhf (8:6.9.11.60+dfsg-1.6) ... Setting up libpangocairo-1.0-0:armhf (1.50.12+ds-1) ... Setting up libpython3-stdlib:armhf (3.11.2-1+b1) ... Setting up python3.11 (3.11.2-6) ... Setting up libxmu6:armhf (2:1.1.3-3) ... Setting up libpoppler-glib8:armhf (22.12.0-2+b1) ... Setting up libxi6:armhf (2:1.8-1+b1) ... Setting up libxcursor1:armhf (1:1.2.1-1) ... Setting up debhelper (13.11.4) ... Setting up dconf-service (0.40.0-4) ... Setting up python3 (3.11.2-1+b1) ... Setting up libatspi2.0-0:armhf (2.46.0-5) ... Setting up python3-markupsafe (2.1.2-1+b1) ... Setting up python3-webencodings (0.5.1-5) ... Setting up python3-psutil (5.9.4-1+b1) ... Setting up python3-tz (2022.7.1-4) ... Setting up python3-vine (5.0.0+dfsg-3) ... Setting up python3-ifaddr (0.1.7-2) ... Setting up python3-monotonic (1.6-2) ... Setting up python3-async-timeout (4.0.2-1) ... Setting up librsvg2-2:armhf (2.54.7+dfsg-1~deb12u1) ... Setting up python3-mysqldb (1.4.6-2+b1) ... Setting up python3-six (1.16.0-4) ... Setting up python3-simplejson (3.18.3-1) ... Setting up libatk-bridge2.0-0:armhf (2.46.0-5) ... Setting up python3-pil:armhf (9.4.0-1.1+b1) ... Setting up python3-roman (3.3-3) ... Setting up python3-decorator (5.1.1-3) ... Setting up python3-pycodestyle (2.10.0-1) ... Setting up python3-jinja2 (3.1.2-1) ... Setting up python3-tempita (0.5.2-7) ... Setting up python3-webcolors (1.11.1-1) ... Setting up python3-packaging (23.0-1) ... Setting up python3-iso8601 (1.0.2-1) ... Setting up python3-sqlparse (0.4.2-1) ... Setting up python3-wcwidth (0.2.5+dfsg1-1.1) ... Setting up python3-pyparsing (3.0.9-1) ... Setting up python3-certifi (2022.9.24-1) ... Setting up python3-snowballstemmer (2.2.0-2) ... Setting up python3-jmespath (1.0.1-1) ... Setting up python3-greenlet (2.0.2-1) ... Setting up python3-reportlab-accel:armhf (3.6.12-1+b1) ... Setting up python3-idna (3.3-1) ... Setting up python3-wrapt (1.14.1-2+b2) ... Setting up xclip (0.13-2) ... Setting up python3-psycopg2 (2.9.5-1+b1) ... Setting up python3-deprecation (2.1.0-2) ... Setting up python3-funcparserlib (1.0.0-0.2) ... Setting up python3-pymysql (1.0.2-2) ... Setting up python3-fasteners (0.17.3-2) ... Setting up librsvg2-common:armhf (2.54.7+dfsg-1~deb12u1) ... Setting up libpangomm-1.4-1v5:armhf (2.46.3-1) ... Setting up python3-jeepney (0.8.0-3) ... Setting up python3-urllib3 (1.26.12-1) ... Setting up python3-reportlab (3.6.12-1) ... Setting up python3-netifaces:armhf (0.11.0-2+b1) ... Setting up python3-pyrsistent:armhf (0.18.1-1+b3) ... Setting up python3-netaddr (0.8.0-2) ... Setting up python3-json-pointer (2.3-2) ... Setting up python3-lxml:armhf (4.9.2-1+b1) ... Setting up python3-dnspython (2.3.0-1) ... Setting up python3-dulwich (0.21.2-1+b1) ... Setting up python3-amqp (5.1.1-1) ... Setting up python3-pyasn1 (0.4.8-3) ... Setting up python3-dateutil (2.8.2-2) ... Setting up python3-mccabe (0.7.0-1) ... Setting up python3-anyjson (0.3.3-5) ... Setting up python3-msgpack (1.0.3-2+b1) ... Setting up python3-singledispatch (3.4.0.3-4) ... Setting up python3-voluptuous (0.12.2-1) ... Setting up python3-logutils (0.3.5-1) ... Setting up python3-protobuf (3.21.12-3) ... Setting up python3-simplegeneric (0.8.1-5) ... Setting up python3-prettytable (3.6.0-1) ... Setting up python3-lib2to3 (3.11.2-3) ... Setting up python3-appdirs (1.4.4-3) ... Setting up python3-soupsieve (2.3.2-1) ... Setting up python3-deprecated (1.2.13-3) ... Setting up python3-confluent-kafka (1.7.0-4) ... Setting up python3-cffi-backend:armhf (1.15.1-5+b1) ... Setting up python3-webob (1:1.8.6-3) ... Setting up python3-imagesize (1.4.1-1) ... Setting up python3-blinker (1.5-1) ... Setting up python3-pkg-resources (66.1.1-1) ... Setting up python3-distutils (3.11.2-3) ... Setting up dh-python (5.20230130+deb12u1) ... Setting up python3-more-itertools (8.10.0-2) ... Setting up librsvg2-bin (2.54.7+dfsg-1~deb12u1) ... Setting up python3-attr (22.2.0-1) ... Setting up python3-pymemcache (3.5.2-1) ... Setting up python3-waitress (2.1.2-2) ... Setting up python3-jaraco.classes (3.2.1-3) ... Setting up python3-ddt (1.6.0-2) ... Setting up python3-tinycss2 (1.2.1-2) ... Setting up python3-setuptools (66.1.1-1) ... Setting up python3-repoze.lru (0.7-3) ... Setting up dconf-gsettings-backend:armhf (0.40.0-4) ... Setting up python3-py (1.11.0-1) ... Setting up python3-jwt (2.6.0-1) ... Setting up python3-cachetools (5.2.0-1) ... Setting up python3-pycdlib (1.12.0+ds1-4) ... Setting up python3-zeroconf (0.47.3-1) ... Setting up python3-babel (2.10.3-1) ... update-alternatives: using /usr/bin/pybabel-python3 to provide /usr/bin/pybabel (pybabel) in auto mode Setting up python3-zope.event (4.4-3) ... Setting up python3-defusedxml (0.7.1-2) ... Setting up python3-zope.interface (5.5.2-1+b1) ... Setting up python3-pbr (5.10.0-2) ... Setting up python3-statsd (4.0.1-1) ... Setting up python3-charset-normalizer (3.0.1-2) ... Setting up python3-alabaster (0.7.12-1) ... Setting up python3-amqplib (1.0.2-3) ... Setting up python3-os-traits (2.9.0-2) ... Setting up python3-pycryptodome (3.11.0+dfsg1-4) ... Setting up python3-jsonpatch (1.32-2) ... update-alternatives: using /usr/bin/json-patch-jsondiff to provide /usr/bin/jsondiff (jsondiff) in auto mode Setting up python3-tenacity (8.2.1-1) ... Setting up python3-bcrypt (3.2.2-1) ... Setting up python3-ply (3.11-5) ... Setting up python3-autopage (0.4.0-3) ... Setting up python3-pyinotify (0.9.6-2) ... Setting up python3-retrying (1.3.3-4) ... Setting up python3-pyflakes (2.5.0-1) ... Setting up python3-extras (1.0.0-4) ... Setting up python3-memcache (1.59-5) ... Setting up python3-kerberos (1.1.14-3.1+b7) ... Setting up python3-all (3.11.2-1+b1) ... Setting up python3-requestsexceptions (1.4.0-3) ... Setting up python3-coverage (6.5.0+dfsg1-2+b1) ... Setting up python3-yaml (6.0-3+b2) ... Setting up python3-futurist (2.4.1-2) ... Setting up python3-pyperclip (1.8.2-2) ... Setting up python3-debtcollector (2.5.0-2) ... Setting up python3-gevent (22.10.2-3) ... Setting up python3-zipp (1.0.0-6) ... Setting up python3-kombu (5.2.4-1) ... Setting up python3-wheel (0.38.4-2) ... Setting up python3-munch (2.5.0-2) ... Setting up python3-bs4 (4.11.2-2) ... Setting up python3-pycparser (2.21-1) ... Setting up python3-sqlalchemy (1.4.46+ds1-1) ... Setting up python3-flake8 (5.0.4-4) ... Setting up python3-routes (2.5.1-3) ... Setting up python3-prometheus-client (0.16.0-0.1) ... Setting up python3-eventlet (0.33.1-4) ... Setting up python3-pygments (2.14.0+dfsg-1) ... Setting up python3-chardet (5.1.0+dfsg-2) ... Setting up python3-rfc3986 (1.5.0-2) ... Setting up python3-paste (3.5.2+repack-1) ... Setting up python3-jsonschema (4.10.3-1) ... Setting up python3-cmd2 (2.4.2+ds-3) ... Setting up python3-cssselect2 (0.7.0-1) ... Setting up python3-zmq (24.0.1-4+b1) ... Setting up python3-cryptography (38.0.4-3) ... Setting up python3-requests (2.28.1+dfsg-1) ... Setting up python3-grpcio (1.51.1-3+b1) ... Setting up python3-oslosphinx (4.18.0-5) ... Setting up python3-oslo.rootwrap (6.3.1-2) ... Setting up python3-unittest2 (1.1.0-9) ... update-alternatives: using /usr/bin/python3-unit2 to provide /usr/bin/unit2 (unit2) in auto mode Setting up python3-oslo.context (5.0.0-2) ... Setting up python3-uhashring (2.1-3) ... Setting up python3-redis (4.3.4-3) ... Setting up python3-pip (23.0.1+dfsg-1) ... Setting up python3-automaton (3.0.1-2) ... Setting up python3-etcd3 (0.12.0-2) ... Setting up python3-pysmi (0.3.2-3) ... Setting up python3-os-service-types (1.7.0-2) ... Setting up python3-stevedore (4.0.2-2) ... Setting up python3-dracclient (3.1.0-3) ... Setting up python3-pyghmi (1.5.34-2) ... Setting up python3-future (0.18.2-6) ... update-alternatives: using /usr/bin/python3-futurize to provide /usr/bin/futurize (futurize) in auto mode update-alternatives: using /usr/bin/python3-pasteurize to provide /usr/bin/pasteurize (pasteurize) in auto mode Setting up python3-bashate (2.1.0-2) ... Setting up python3-swiftclient (1:4.1.0-2) ... Setting up python3-binary-memcached (0.31.1+dfsg1-2) ... Setting up python3-migrate (0.13.0-3) ... Setting up libgtk-3-common (3.24.38-2~deb12u1) ... Setting up python3-oslo.i18n (5.1.0-3) ... Setting up python3-mako (1.2.4+ds-1) ... Setting up gsettings-desktop-schemas (43.0-1) ... Setting up pyflakes3 (2.5.0-1) ... Setting up python3-testresources (2.0.1-4) ... Setting up python3-importlib-metadata (4.12.0-1) ... Setting up python3-pysnmp4 (4.4.12-2) ... Setting up python3-pure-sasl (0.5.1+dfsg1-2) ... Setting up python3-sushy (4.3.3-1) ... Setting up python3-warlock (2.0.1-2) ... Setting up libgtk-3-0:armhf (3.24.38-2~deb12u1) ... Setting up python3-openssl (23.0.0-1) ... Setting up python3-pastedeploy (3.0.1-5) ... Setting up python3-etcd3gw (2.0.0-2) ... Setting up python3-cffi (1.15.1-5) ... Setting up python3-yappi (1.4.0-1+b1) ... Setting up python3-oslo.utils (6.0.1-2) ... Setting up flake8 (5.0.4-4) ... Setting up openstack-pkg-tools (123) ... Setting up python3-dogpile.cache (1.1.8-2) ... Setting up python3-oauthlib (3.2.2-1) ... Setting up python3-secretstorage (3.3.3-1) ... Setting up python3-kazoo (2.8.0-2) ... Setting up python3-zake (0.2.2-4) ... Setting up python3-xcffib (0.11.1-4) ... Setting up python3-alembic (1.8.1-2) ... Setting up python3-keyring (23.9.3-2) ... Setting up python3-webtest (3.0.0-2) ... Setting up glib-networking:armhf (2.74.0-4) ... Setting up libgspell-1-2:armhf (1.12.0-1+b2) ... Setting up python3-keystoneauth1 (5.0.0-2) ... Setting up alembic (1.8.1-2) ... Setting up python3-hacking (4.1.0-2) ... Setting up python3-pecan (1.4.1-1) ... Setting up libsoup2.4-1:armhf (2.74.3-1) ... Setting up libgtkmm-3.0-1v5:armhf (3.24.7-1) ... Setting up python3-oslo.serialization (5.0.0-2) ... Setting up python3-glanceclient (1:4.1.0-2) ... Setting up python3-scciclient (0.12.3-2) ... Setting up inkscape (1.2.2-2+b1) ... Setting up python3-cairocffi (1.4.0-1) ... Setting up python3-openstacksdk (0.101.0-2) ... Setting up python3-cinderclient (1:9.1.0-3) ... Setting up python3-cairosvg (2.5.2-1.1+deb12u1) ... Setting up python3-os-client-config (2.1.0-1) ... Setting up python3-oslo.reports (2.4.0-2) ... Setting up python3-tooz (3.1.0-3) ... /usr/lib/python3/dist-packages/tooz/drivers/pgsql.py:74: SyntaxWarning: 'str' object is not callable; perhaps you missed a comma? diagnostic_lines.append(" %s = %s" (attr_name, attr_value)) Setting up python3-fixtures (4.0.1-2) ... Setting up python3-testtools (2.5.0-4) ... Setting up python3-subunit (1.4.0-3) ... Setting up python3-testscenarios (0.5.0-3) ... Setting up subunit (1.4.0-3) ... Processing triggers for libc-bin (2.36-9+deb12u3) ... Processing triggers for systemd (252.19-1~deb12u1) ... Processing triggers for sgml-base (1.31) ... Setting up docutils-common (0.19+dfsg-6) ... Processing triggers for sgml-base (1.31) ... Setting up python3-docutils (0.19+dfsg-6) ... Setting up python3-restructuredtext-lint (1.3.2-2) ... Setting up python3-doc8 (0.10.1-1) ... Setting up python3-cliff (4.0.0-2) ... Setting up python3-oslo.config (1:9.0.0-3) ... Setting up python3-oslo.middleware (5.0.0-2) ... Setting up python3-keystoneclient (1:5.0.1-3) ... Setting up python3-oslo.db (12.1.0-3) ... Setting up python3-blockdiag (2.0.1+dfsg-1) ... Setting up python3-osc-lib (2.6.2-2) ... Setting up python3-oslo.concurrency (5.0.1-3) ... Setting up python3-sphinx (5.3.0-4) ... Setting up python3-oslo.log (5.0.1-1) ... Setting up python3-pycadf (3.1.1-2) ... Setting up python3-oslo.metrics (0.5.0-2) ... Setting up python3-oslo.policy (4.0.0-2) ... Setting up python3-sphinxcontrib.svg2pdfconverter (1.2.2-1) ... Setting up python3-stestr (3.2.1-1) ... Setting up python3-sphinxcontrib.httpdomain (1.8.0-2) ... Setting up python3-sphinxcontrib-pecanwsme (0.10.0-2) ... Setting up python3-seqdiag (2.0.0+dfsg-1) ... Setting up python3-sphinxcontrib.apidoc (0.3.0-2) ... Setting up python3-sphinxcontrib.seqdiag (2.0.0-1) ... Setting up python3-ironic-lib (5.3.0-2) ... Setting up python3-oslo.service (3.0.0-2) ... Setting up python3-proliantutils (2.14.0-2) ... Setting up python3-oslo.upgradecheck (2.0.0-2) ... Setting up python3-ironic-inspector-client (4.8.0-2) ... Setting up python3-oslotest (1:4.5.0-3) ... Setting up python3-osprofiler (3.4.3-2) ... Setting up python3-oslo.messaging (14.0.0-2) ... Setting up python3-openstackdocstheme (1.20.0-5) ... Setting up python3-oslo.cache (3.2.0-1) ... Setting up python3-oslo.versionedobjects (3.0.1-2) ... Setting up python3-keystonemiddleware (10.1.0-4) ... Setting up python3-os-api-ref (2.3.0+ds1-1) ... Processing triggers for dictionaries-common (1.29.5) ... Processing triggers for ca-certificates (20230311) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. Processing triggers for libgdk-pixbuf-2.0-0:armhf (2.42.10+dfsg-1+b1) ... Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps Reading package lists... Building dependency tree... Reading state information... 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 dpkg-buildpackage: info: source package ironic dpkg-buildpackage: info: source version 1:21.1.0-3 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Thomas Goirand dpkg-source --before-build . dpkg-buildpackage: info: host architecture armhf dpkg-source: info: using options from ironic-21.1.0/debian/source/options: --extend-diff-ignore=^[.]gitreview$ fakeroot debian/rules clean make: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh clean --buildsystem=python_distutils --with python3,sphinxdoc,systemd debian/rules override_dh_auto_clean make[1]: Entering directory '/build/reproducible-path/ironic-21.1.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions python3 setup.py clean /usr/lib/python3/dist-packages/setuptools/command/easy_install.py:146: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools. warnings.warn( /usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. warnings.warn( running clean rm -f debian/ironic-common.config debian/ironic-common.postinst debian/ironic-api.postinst debian/ironic-api.config rm -rf doc/build rm -f debian/*.init debian/*.service debian/*.upstart make[1]: Leaving directory '/build/reproducible-path/ironic-21.1.0' dh_autoreconf_clean -O--buildsystem=python_distutils dh_clean -O--buildsystem=python_distutils debian/rules build make: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh build --buildsystem=python_distutils --with python3,sphinxdoc,systemd dh_update_autotools_config -O--buildsystem=python_distutils dh_autoreconf -O--buildsystem=python_distutils dh_auto_configure -O--buildsystem=python_distutils dh_auto_configure: warning: Please use the third-party "pybuild" build system instead of python-distutils dh_auto_configure: warning: This feature will be removed in compat 12. debian/rules override_dh_auto_build make[1]: Entering directory '/build/reproducible-path/ironic-21.1.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func ironic-common.config /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func ironic-common.postinst /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func ironic-api.config /usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func ironic-api.postinst pkgos-merge-templates ironic-api ironic endpoint Merging cs.po... Merging da.po... Merging de.po... Merging es.po... Merging fr.po... Merging gl.po... Merging it.po... Merging ja.po... Merging nl.po... Merging pl.po... Merging pt.po... Merging pt_BR.po... Merging ru.po... Merging sv.po... Merging zh_CN.po... pkgos-merge-templates ironic-common ironic db rabbit ksat Merging cs.po... Merging da.po... Merging de.po... Merging es.po... Merging fr.po... Merging gl.po... Merging it.po... Merging ja.po... Merging nl.po... Merging pl.po... Merging pt.po... Merging pt_BR.po... Merging ru.po... Merging sv.po... Merging zh_CN.po... make[1]: Leaving directory '/build/reproducible-path/ironic-21.1.0' debian/rules override_dh_auto_test make[1]: Entering directory '/build/reproducible-path/ironic-21.1.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions echo "Do nothing..." Do nothing... make[1]: Leaving directory '/build/reproducible-path/ironic-21.1.0' create-stamp debian/debhelper-build-stamp fakeroot debian/rules binary make: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh binary --buildsystem=python_distutils --with python3,sphinxdoc,systemd dh_testroot -O--buildsystem=python_distutils dh_prep -O--buildsystem=python_distutils debian/rules override_dh_auto_install make[1]: Entering directory '/build/reproducible-path/ironic-21.1.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions echo "Do nothing..." Do nothing... make[1]: Leaving directory '/build/reproducible-path/ironic-21.1.0' debian/rules override_dh_install make[1]: Entering directory '/build/reproducible-path/ironic-21.1.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions for i in 3.11 ; do \ python$i setup.py install --install-layout=deb --root /build/reproducible-path/ironic-21.1.0/debian/tmp ; \ done /usr/lib/python3/dist-packages/setuptools/command/easy_install.py:146: EasyInstallDeprecationWarning: easy_install command is deprecated. Use build and pip and other standards-based tools. warnings.warn( /usr/lib/python3/dist-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools. warnings.warn( running install [pbr] Generating AUTHORS [pbr] AUTHORS complete (0.0s) running build running build_py creating build creating build/lib creating build/lib/ironic creating build/lib/ironic/tests creating build/lib/ironic/tests/unit creating build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_utils.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_irmc.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_xclarity.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_redfish.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/third_party_driver_mock_specs.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_ibmc.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_generic.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_snmp.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_drac.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_ilo.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_fake_hardware.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/third_party_driver_mocks.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_ipmi.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/__init__.py -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/test_base.py -> build/lib/ironic/tests/unit/drivers 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/base.py -> build/lib/ironic/dhcp copying ironic/dhcp/dnsmasq.py -> build/lib/ironic/dhcp copying ironic/dhcp/__init__.py -> build/lib/ironic/dhcp creating 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_chassis.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_conductor.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_node_tags.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/base.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/test_ports.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_node_history.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/__init__.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_portgroups.py -> build/lib/ironic/tests/unit/db copying ironic/tests/unit/db/utils.py -> build/lib/ironic/tests/unit/db creating build/lib/ironic/tests/unit/drivers/modules creating build/lib/ironic/tests/unit/drivers/modules/irmc copying ironic/tests/unit/drivers/modules/irmc/test_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_boot.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_periodic_task.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/test_inspect.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 creating build/lib/ironic/drivers/modules creating build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/job.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/raid.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/power.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/management.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/__init__.py -> 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/inspect.py -> build/lib/ironic/drivers/modules/drac copying ironic/drivers/modules/drac/utils.py -> build/lib/ironic/drivers/modules/drac creating 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_boot.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_management.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_vendor.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/test_inspect.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/conductor copying ironic/conductor/periodics.py -> build/lib/ironic/conductor copying ironic/conductor/cleaning.py -> build/lib/ironic/conductor copying ironic/conductor/rpcapi.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/notification_utils.py -> build/lib/ironic/conductor copying ironic/conductor/steps.py -> build/lib/ironic/conductor copying ironic/conductor/allocations.py -> build/lib/ironic/conductor copying ironic/conductor/task_manager.py -> build/lib/ironic/conductor copying ironic/conductor/verify.py -> build/lib/ironic/conductor copying ironic/conductor/base_manager.py -> build/lib/ironic/conductor copying ironic/conductor/__init__.py -> build/lib/ironic/conductor copying ironic/conductor/utils.py -> build/lib/ironic/conductor creating 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/test_external.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/drivers/modules/pxe.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/fake.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/console_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/pxe_base.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/noop_mgmt.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/deploy_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_client.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ramdisk.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipxe.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_base.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/boot_mode_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/image_cache.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/inspector.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/ipmitool.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/inspect_utils.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/agent_power.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/__init__.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/noop.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/snmp.py -> build/lib/ironic/drivers/modules copying ironic/drivers/modules/image_utils.py -> build/lib/ironic/drivers/modules creating build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/boot.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/vendor.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/power.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/management.py -> build/lib/ironic/drivers/modules/redfish copying ironic/drivers/modules/redfish/__init__.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/utils.py -> build/lib/ironic/drivers/modules/redfish 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/__init__.py -> build/lib/ironic/common/glance_service copying ironic/common/glance_service/image_service.py -> build/lib/ironic/common/glance_service creating build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/cinder.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/__init__.py -> build/lib/ironic/drivers/modules/storage copying ironic/drivers/modules/storage/noop.py -> build/lib/ironic/drivers/modules/storage creating build/lib/ironic/tests/unit/api creating build/lib/ironic/tests/unit/api/controllers creating build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_chassis.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume_connector.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_conductor.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_event.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_ramdisk.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_allocation.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_node.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_volume.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_collection.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_port.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_portgroup.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_notification_utils.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_root.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_versions.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/test_deploy_template.py -> build/lib/ironic/tests/unit/api/controllers/v1 copying ironic/tests/unit/api/controllers/v1/__init__.py -> 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_driver.py -> build/lib/ironic/tests/unit/api/controllers/v1 creating 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/test_task_manager.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_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_steps.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/test_periodics.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_notification_utils.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_rpcapi.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/__init__.py -> build/lib/ironic/tests/unit/conductor copying ironic/tests/unit/conductor/test_verify.py -> build/lib/ironic/tests/unit/conductor copying ironic/common/context.py -> build/lib/ironic/common copying ironic/common/policy.py -> build/lib/ironic/common copying ironic/common/network.py -> build/lib/ironic/common copying ironic/common/raid.py -> build/lib/ironic/common copying ironic/common/swift.py -> build/lib/ironic/common copying ironic/common/driver_factory.py -> build/lib/ironic/common copying ironic/common/fsm.py -> build/lib/ironic/common copying ironic/common/molds.py -> build/lib/ironic/common copying ironic/common/indicator_states.py -> build/lib/ironic/common copying ironic/common/boot_devices.py -> build/lib/ironic/common copying ironic/common/components.py -> build/lib/ironic/common copying ironic/common/config.py -> build/lib/ironic/common copying ironic/common/keystone.py -> build/lib/ironic/common copying ironic/common/service.py -> build/lib/ironic/common copying ironic/common/neutron.py -> build/lib/ironic/common copying ironic/common/images.py -> build/lib/ironic/common copying ironic/common/wsgi_service.py -> build/lib/ironic/common copying ironic/common/kickstart_utils.py -> build/lib/ironic/common copying ironic/common/hash_ring.py -> build/lib/ironic/common copying ironic/common/pxe_utils.py -> build/lib/ironic/common copying ironic/common/release_mappings.py -> build/lib/ironic/common copying ironic/common/cinder.py -> build/lib/ironic/common copying ironic/common/nova.py -> build/lib/ironic/common copying ironic/common/boot_modes.py -> build/lib/ironic/common copying ironic/common/rpc.py -> build/lib/ironic/common copying ironic/common/i18n.py -> build/lib/ironic/common copying ironic/common/args.py -> build/lib/ironic/common copying ironic/common/rpc_service.py -> build/lib/ironic/common copying ironic/common/__init__.py -> build/lib/ironic/common copying ironic/common/profiler.py -> build/lib/ironic/common copying ironic/common/states.py -> build/lib/ironic/common copying ironic/common/dhcp_factory.py -> build/lib/ironic/common copying ironic/common/exception.py -> build/lib/ironic/common copying ironic/common/image_service.py -> build/lib/ironic/common copying ironic/common/utils.py -> build/lib/ironic/common copying ironic/common/faults.py -> build/lib/ironic/common copying ironic/__init__.py -> build/lib/ironic copying ironic/version.py -> build/lib/ironic creating build/lib/ironic/cmd copying ironic/cmd/conductor.py -> build/lib/ironic/cmd copying ironic/cmd/singleprocess.py -> build/lib/ironic/cmd copying ironic/cmd/dbsync.py -> build/lib/ironic/cmd copying ironic/cmd/api.py -> build/lib/ironic/cmd copying ironic/cmd/status.py -> build/lib/ironic/cmd copying ironic/cmd/__init__.py -> build/lib/ironic/cmd creating build/lib/ironic/api creating build/lib/ironic/api/controllers copying ironic/api/controllers/base.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/link.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/root.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/__init__.py -> build/lib/ironic/api/controllers copying ironic/api/controllers/version.py -> build/lib/ironic/api/controllers creating build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/node.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/conductor.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/collection.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/chassis.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume_connector.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/event.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/notification_utils.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/ramdisk.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/port.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/driver.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/bios.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/versions.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/volume_target.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/__init__.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/portgroup.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/deploy_template.py -> build/lib/ironic/api/controllers/v1 copying ironic/api/controllers/v1/utils.py -> build/lib/ironic/api/controllers/v1 creating build/lib/ironic/drivers/modules/intel_ipmi copying ironic/drivers/modules/intel_ipmi/management.py -> build/lib/ironic/drivers/modules/intel_ipmi copying ironic/drivers/modules/intel_ipmi/__init__.py -> build/lib/ironic/drivers/modules/intel_ipmi creating build/lib/ironic/tests/unit/drivers/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/ibmc copying ironic/drivers/modules/ibmc/raid.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/vendor.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/power.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/management.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/__init__.py -> build/lib/ironic/drivers/modules/ibmc copying ironic/drivers/modules/ibmc/utils.py -> build/lib/ironic/drivers/modules/ibmc creating 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_hash_ring.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_raid.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_utils.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_swift.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_network.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_kickstart_utils.py -> 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_images.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_molds.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_glance_service.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_driver_factory.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/__init__.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_rpc.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/test_context.py -> build/lib/ironic/tests/unit/common copying ironic/api/functions.py -> build/lib/ironic/api copying ironic/api/wsgi.py -> build/lib/ironic/api copying ironic/api/method.py -> build/lib/ironic/api copying ironic/api/config.py -> build/lib/ironic/api copying ironic/api/__init__.py -> build/lib/ironic/api copying ironic/api/app.py -> build/lib/ironic/api copying ironic/api/hooks.py -> build/lib/ironic/api creating build/lib/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/deploy.py -> build/lib/ironic/drivers/modules/ansible copying ironic/drivers/modules/ansible/__init__.py -> build/lib/ironic/drivers/modules/ansible creating build/lib/ironic/tests/functional copying ironic/tests/functional/__init__.py -> build/lib/ironic/tests/functional creating 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/parsable_error.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/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_utils.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/test_vendor.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/drivers/generic.py -> build/lib/ironic/drivers copying ironic/drivers/xclarity.py -> build/lib/ironic/drivers copying ironic/drivers/ilo.py -> build/lib/ironic/drivers copying ironic/drivers/fake_hardware.py -> build/lib/ironic/drivers copying ironic/drivers/ibmc.py -> build/lib/ironic/drivers copying ironic/drivers/drac.py -> build/lib/ironic/drivers copying ironic/drivers/hardware_type.py -> build/lib/ironic/drivers copying ironic/drivers/ipmi.py -> build/lib/ironic/drivers copying ironic/drivers/base.py -> build/lib/ironic/drivers copying ironic/drivers/redfish.py -> build/lib/ironic/drivers copying ironic/drivers/__init__.py -> build/lib/ironic/drivers copying ironic/drivers/intel_ipmi.py -> build/lib/ironic/drivers copying ironic/drivers/snmp.py -> build/lib/ironic/drivers copying ironic/drivers/irmc.py -> build/lib/ironic/drivers copying ironic/drivers/utils.py -> build/lib/ironic/drivers creating 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_boot.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_management.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_periodic_task.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/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/__init__.py -> 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 creating build/lib/ironic/drivers/modules/xclarity copying ironic/drivers/modules/xclarity/common.py -> 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/__init__.py -> build/lib/ironic/drivers/modules/xclarity creating build/lib/ironic/objects copying ironic/objects/node.py -> build/lib/ironic/objects copying ironic/objects/conductor.py -> build/lib/ironic/objects copying ironic/objects/notification.py -> build/lib/ironic/objects copying ironic/objects/chassis.py -> build/lib/ironic/objects copying ironic/objects/volume_connector.py -> build/lib/ironic/objects copying ironic/objects/indirection.py -> build/lib/ironic/objects copying ironic/objects/trait.py -> build/lib/ironic/objects copying ironic/objects/fields.py -> build/lib/ironic/objects copying ironic/objects/port.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/bios.py -> build/lib/ironic/objects copying ironic/objects/volume_target.py -> build/lib/ironic/objects copying ironic/objects/__init__.py -> build/lib/ironic/objects copying ironic/objects/portgroup.py -> build/lib/ironic/objects copying ironic/objects/deployment.py -> build/lib/ironic/objects copying ironic/objects/node_history.py -> build/lib/ironic/objects copying ironic/objects/deploy_template.py -> build/lib/ironic/objects 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/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_boot.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_common.py -> 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_bios.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_inspect.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/unit/drivers/modules/ilo/test_console.py -> build/lib/ironic/tests/unit/drivers/modules/ilo creating 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/test_noop.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/__init__.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 creating build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/boot.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/common.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/vendor.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/power.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/management.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/__init__.py -> build/lib/ironic/drivers/modules/ilo copying ironic/drivers/modules/ilo/inspect.py -> build/lib/ironic/drivers/modules/ilo copying ironic/tests/unit/stubs.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/policy_fixture.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/raid_constants.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/__init__.py -> build/lib/ironic/tests/unit copying ironic/tests/unit/test_base.py -> build/lib/ironic/tests/unit creating build/lib/ironic/db creating build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/migration.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/models.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/api.py -> build/lib/ironic/db/sqlalchemy copying ironic/db/sqlalchemy/__init__.py -> build/lib/ironic/db/sqlalchemy creating build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/test_conductor.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_status.py -> build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/cmd/__init__.py -> build/lib/ironic/tests/unit/cmd copying ironic/tests/unit/api/controllers/__init__.py -> build/lib/ironic/tests/unit/api/controllers copying ironic/tests/unit/api/controllers/test_base.py -> build/lib/ironic/tests/unit/api/controllers creating 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_types.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/network copying ironic/drivers/modules/network/common.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/__init__.py -> build/lib/ironic/drivers/modules/network copying ironic/drivers/modules/network/noop.py -> build/lib/ironic/drivers/modules/network creating build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_dnsmasq.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_factory.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/__init__.py -> build/lib/ironic/tests/unit/dhcp copying ironic/tests/unit/dhcp/test_neutron.py -> build/lib/ironic/tests/unit/dhcp creating build/lib/ironic/tests/unit/drivers/modules/ansible copying ironic/tests/unit/drivers/modules/ansible/__init__.py -> build/lib/ironic/tests/unit/drivers/modules/ansible copying ironic/tests/unit/drivers/modules/ansible/test_deploy.py -> build/lib/ironic/tests/unit/drivers/modules/ansible copying ironic/tests/unit/drivers/modules/test_noop_mgmt.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_agent_client.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_agent_power.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_pxe.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_deploy_utils.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_snmp.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_agent_base.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_boot_mode_utils.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/__init__.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/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/hacking copying ironic/hacking/checks.py -> build/lib/ironic/hacking copying ironic/hacking/__init__.py -> build/lib/ironic/hacking copying ironic/tests/unit/api/test_acl.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/base.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_root.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_hooks.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/__init__.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_method.py -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/utils.py -> build/lib/ironic/tests/unit/api creating build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_notification.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_chassis.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_volume_connector.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_conductor.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/test_node.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_trait.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_port.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_objects.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_portgroup.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_bios.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_fields.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_deployment.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_node_history.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_deploy_template.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/__init__.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/test_volume_target.py -> build/lib/ironic/tests/unit/objects copying ironic/tests/unit/objects/utils.py -> build/lib/ironic/tests/unit/objects creating build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/__init__.py -> build/lib/ironic/tests/unit/conf copying ironic/tests/unit/conf/test_auth.py -> build/lib/ironic/tests/unit/conf creating build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/boot.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/raid.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/common.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/bios.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/__init__.py -> build/lib/ironic/drivers/modules/irmc copying ironic/drivers/modules/irmc/inspect.py -> build/lib/ironic/drivers/modules/irmc 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/conf copying ironic/conf/pxe.py -> build/lib/ironic/conf copying ironic/conf/dhcp.py -> build/lib/ironic/conf copying ironic/conf/conductor.py -> build/lib/ironic/conf copying ironic/conf/metrics_statsd.py -> build/lib/ironic/conf copying ironic/conf/xclarity.py -> build/lib/ironic/conf copying ironic/conf/ilo.py -> build/lib/ironic/conf copying ironic/conf/metrics.py -> build/lib/ironic/conf copying ironic/conf/swift.py -> build/lib/ironic/conf copying ironic/conf/molds.py -> build/lib/ironic/conf copying ironic/conf/ibmc.py -> build/lib/ironic/conf copying ironic/conf/neutron.py -> build/lib/ironic/conf copying ironic/conf/auth.py -> build/lib/ironic/conf copying ironic/conf/drac.py -> build/lib/ironic/conf copying ironic/conf/opts.py -> build/lib/ironic/conf copying ironic/conf/glance.py -> build/lib/ironic/conf copying ironic/conf/audit.py -> build/lib/ironic/conf copying ironic/conf/ipmi.py -> build/lib/ironic/conf copying ironic/conf/deploy.py -> build/lib/ironic/conf copying ironic/conf/redfish.py -> build/lib/ironic/conf copying ironic/conf/agent.py -> build/lib/ironic/conf copying ironic/conf/inspector.py -> build/lib/ironic/conf copying ironic/conf/anaconda.py -> build/lib/ironic/conf copying ironic/conf/default.py -> build/lib/ironic/conf copying ironic/conf/service_catalog.py -> build/lib/ironic/conf copying ironic/conf/console.py -> build/lib/ironic/conf copying ironic/conf/cinder.py -> build/lib/ironic/conf copying ironic/conf/nova.py -> build/lib/ironic/conf copying ironic/conf/dnsmasq.py -> build/lib/ironic/conf copying ironic/conf/api.py -> build/lib/ironic/conf copying ironic/conf/__init__.py -> build/lib/ironic/conf copying ironic/conf/snmp.py -> build/lib/ironic/conf copying ironic/conf/healthcheck.py -> build/lib/ironic/conf copying ironic/conf/ansible.py -> build/lib/ironic/conf copying ironic/conf/irmc.py -> build/lib/ironic/conf copying ironic/conf/database.py -> build/lib/ironic/conf running egg_info creating ironic.egg-info writing ironic.egg-info/PKG-INFO writing dependency_links to ironic.egg-info/dependency_links.txt writing entry points to ironic.egg-info/entry_points.txt writing requirements to ironic.egg-info/requires.txt writing top-level names to ironic.egg-info/top_level.txt [pbr] Processing SOURCES.txt writing manifest file 'ironic.egg-info/SOURCES.txt' warning: no files found matching 'AUTHORS' warning: no files found matching 'ChangeLog' warning: no previously-included files found matching '.gitignore' warning: no previously-included files found matching '.gitreview' warning: no previously-included files matching '*.pyc' found anywhere in distribution reading manifest template 'MANIFEST.in' adding license file 'LICENSE' writing manifest file 'ironic.egg-info/SOURCES.txt' /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.db.sqlalchemy.alembic' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.db.sqlalchemy.alembic' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.db.sqlalchemy.alembic' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.db.sqlalchemy.alembic' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.db.sqlalchemy.alembic.versions' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.db.sqlalchemy.alembic.versions' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.db.sqlalchemy.alembic.versions' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.db.sqlalchemy.alembic.versions' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.callback_plugins' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.callback_plugins' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.callback_plugins' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.callback_plugins' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.library' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.library' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.library' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.library' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.clean.defaults' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.clean.tasks' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.configure.defaults' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.configure.tasks' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.deploy.files' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.deploy.tasks' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.discover.tasks' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.prepare.tasks' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.drivers.modules.ansible.playbooks.roles.shutdown.tasks' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.tests.json_samples' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.tests.json_samples' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.tests.json_samples' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.tests.json_samples' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.tests.unit.common.json_samples' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.tests.unit.common.json_samples' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.tests.unit.common.json_samples' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.tests.unit.common.json_samples' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) /usr/lib/python3/dist-packages/setuptools/command/build_py.py:202: SetuptoolsDeprecationWarning: Installing 'ironic.tests.unit.drivers.modules.network.json_samples' as data is deprecated, please list it in `packages`. !! ############################ # Package would be ignored # ############################ Python recognizes 'ironic.tests.unit.drivers.modules.network.json_samples' as an importable package, but it is not listed in the `packages` configuration of setuptools. 'ironic.tests.unit.drivers.modules.network.json_samples' has been automatically added to the distribution only because it may contain data files, but this behavior is likely to change in future versions of setuptools (and therefore is considered deprecated). Please make sure that 'ironic.tests.unit.drivers.modules.network.json_samples' is included as a package by using the `packages` configuration field or the proper discovery methods (for example by using `find_namespace_packages(...)`/`find_namespace:` instead of `find_packages(...)`/`find:`). You can read more about "package discovery" and "data files" on setuptools documentation page. !! check.warn(importable) copying ironic/tests/unit/drivers/boot-fallback.ipxe -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/boot.ipxe -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_anaconda.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_iso.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_ramdisk.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_extra_volume.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_multipath.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_boot_from_volume_no_extra_volumes.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ipxe_config_timeout.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ks_extra_vars.tmpl -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/ks_missing_var.tmpl -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/pxe_config.template -> build/lib/ironic/tests/unit/drivers copying ironic/tests/unit/drivers/pxe_grub_config.template -> build/lib/ironic/tests/unit/drivers 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/common/grub_conf.template -> build/lib/ironic/common copying ironic/common/isolinux_config.template -> build/lib/ironic/common 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 copying ironic/tests/unit/common/json_samples/neutron_port_show.json -> build/lib/ironic/tests/unit/common/json_samples copying ironic/tests/unit/common/json_samples/neutron_port_show_ipv6.json -> build/lib/ironic/tests/unit/common/json_samples copying ironic/tests/unit/common/json_samples/neutron_subnet_show.json -> build/lib/ironic/tests/unit/common/json_samples copying ironic/tests/unit/common/json_samples/neutron_subnet_show_ipv6.json -> build/lib/ironic/tests/unit/common/json_samples creating build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/add-ironic-nodes.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/ansible.cfg -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/clean.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/clean_steps.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/deploy.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/inventory -> build/lib/ironic/drivers/modules/ansible/playbooks copying ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks creating build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins copying ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins creating build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library copying ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> build/lib/ironic/drivers/modules/ansible/playbooks/library creating build/lib/ironic/drivers/modules/ansible/playbooks/roles creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults copying ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults copying ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files copying ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown creating build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying ironic/drivers/raid_config_schema.json -> build/lib/ironic/drivers creating build/lib/ironic/tests/json_samples copying ironic/tests/json_samples/network_data.json -> build/lib/ironic/tests/json_samples 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 copying ironic/db/sqlalchemy/alembic/env.py -> build/lib/ironic/db/sqlalchemy/alembic copying ironic/db/sqlalchemy/alembic/script.py.mako -> build/lib/ironic/db/sqlalchemy/alembic creating build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2bbd96b6ccb9_add_bios_fields_from_registry.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/9ef41f07cb58_add_node_history_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/ac00b586ab95_node_indexes.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b2ad35726bb0_add_node_lessee.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/c0455649680c_port_name.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/c1846a214450_add_boot_mode_and_secure_boot.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/cd2c80feb331_add_node_retired_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/ce6c4b3cf5a2_add_allocation_owner.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> build/lib/ironic/db/sqlalchemy/alembic/versions copying ironic/tests/unit/api/test_acl_basic.yaml -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_rbac_legacy.yaml -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_rbac_project_scoped.yaml -> build/lib/ironic/tests/unit/api copying ironic/tests/unit/api/test_rbac_system_scoped.yaml -> build/lib/ironic/tests/unit/api running install_lib creating /build/reproducible-path/ironic-21.1.0/debian/tmp creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib 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/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/dhcp.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/metrics_statsd.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 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/metrics.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/molds.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/neutron.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/drac.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/glance.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/ipmi.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/redfish.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/inspector.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/default.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/console.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/nova.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/api.py -> /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/snmp.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/ansible.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/database.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/generic.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/xclarity.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/ilo.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/fake_hardware.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/ibmc.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/drac.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/hardware_type.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/ipmi.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/redfish.py -> /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 creating /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/fake.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/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/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/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/vendor.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/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/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/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/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/__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/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/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/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/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/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/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/pxe_grub_config.template -> /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/boot.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/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/vendor.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/firmware_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/power.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 copying build/lib/ironic/drivers/modules/redfish/management.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/__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/inspect.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 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/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/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/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/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/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/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/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/__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/vendor_passthru.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/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/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/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/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/pxe_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/agent_base.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/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/__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/noop.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/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/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/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/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 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/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/vendor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/mappings.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc copying build/lib/ironic/drivers/modules/ibmc/__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/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/inspect_utils.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/intel_ipmi copying build/lib/ironic/drivers/modules/intel_ipmi/management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/intel_ipmi copying build/lib/ironic/drivers/modules/intel_ipmi/__init__.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/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/raid.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/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/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/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/__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/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/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/agent_power.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/ansible creating /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/playbooks/clean_steps.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/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/playbooks/inventory -> /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 creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/write.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/download.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/configdrive.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks/main.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/tasks creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/files copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/deploy/files/partition_configdrive.sh -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/deploy/files creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/parted.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks/main.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/prepare/tasks creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults/main.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/defaults creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/shred.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/zap.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/wipe.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks/main.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/clean/tasks creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults/main.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/defaults creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/mounts.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/grub.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks/main.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/configure/tasks creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/discover creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/roothints.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks/main.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/discover/tasks creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks/main.yaml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/roles/shutdown/tasks copying build/lib/ironic/drivers/modules/ansible/playbooks/ansible.cfg -> /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/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/facts_wwn.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/stream_url.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/library/root_hints.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/library copying build/lib/ironic/drivers/modules/ansible/playbooks/shutdown.yaml -> /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/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/callback_plugins/ironic_log.ini -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ansible/playbooks/callback_plugins copying build/lib/ironic/drivers/modules/ansible/playbooks/deploy.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/playbooks/clean.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/deploy.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/__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/__init__.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/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/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/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/__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/noop.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/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/snmp.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/ipxe_config.template -> /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/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/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/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/__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/ks.cfg.template -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules copying build/lib/ironic/drivers/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/intel_ipmi.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/snmp.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/irmc.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers copying build/lib/ironic/drivers/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers creating /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/conductor.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/chassis.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/indirection.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/fields.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/base.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/bios.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 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/portgroup.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/node_history.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 creating /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/cleaning.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/manager.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/notification_utils.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/allocations.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/verify.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/__init__.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 creating /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/dhcp/neutron.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/__init__.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/db copying build/lib/ironic/db/migration.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/__init__.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/db/sqlalchemy creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/README -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/script.py.mako -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic copying build/lib/ironic/db/sqlalchemy/alembic/env.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/c1846a214450_add_boot_mode_and_secure_boot.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/f190f9d00a11_add_node_owner.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/c0455649680c_port_name.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/ac00b586ab95_node_indexes.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/b2ad35726bb0_add_node_lessee.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/242cc6a923b3_add_node_maintenance_reason.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3ae36a5f5131_add_logical_name.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2bbd96b6ccb9_add_bios_fields_from_registry.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/cd2c80feb331_add_node_retired_field.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/93706939026c_add_node_protected_field.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/fb3f10dd262e_add_fault_to_node_table.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1a59178ebdf6_add_volume_targets_table.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2fb93ffd2af1_increase_node_name_length.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/f6fdb920c182_set_pxe_enabled_true.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/b9117ac17882_add_node_deploy_step.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/9ef41f07cb58_add_node_history_table.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/10b163d4481e_add_port_portgroup_internal_info.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/d2b036ae9378_add_automated_clean_field.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/alembic/versions/ce6c4b3cf5a2_add_allocation_owner.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions copying build/lib/ironic/db/sqlalchemy/migration.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/alembic.ini -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/models.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/api.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy copying build/lib/ironic/db/sqlalchemy/__init__.py -> /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/tests creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/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/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/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/ks_extra_vars.tmpl -> /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_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/ipxe_config_boot_from_volume_no_extra_volumes.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/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/ipxe_config_boot_from_volume_multipath.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/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/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/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/ks_missing_var.tmpl -> /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 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_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_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_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_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/ipxe_config_boot_from_volume_extra_volume.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/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/third_party_driver_mocks.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/ipxe_config_boot_from_ramdisk.template -> /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 copying build/lib/ironic/tests/unit/drivers/modules/test_noop_mgmt.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/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_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_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_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_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_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/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_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/__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_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/test_image_cache.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_client.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_agent_power.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_console_utils.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/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_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_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_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_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_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_vendor.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_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/__init__.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/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_power.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_boot.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_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/test_management.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_periodic_task.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_job.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/test_inspect.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac copying build/lib/ironic/tests/unit/drivers/modules/drac/__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/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/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_noop.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_ipxe.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/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 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/test_deploy_utils.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_ipmitool.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/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_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_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_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/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_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/modules/ibmc/__init__.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/test_management.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/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/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/intel_ipmi creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/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_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_boot.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_management.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_common.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_periodic_task.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/fake_sensors_data_ok.xml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/fake_sensors_data_ng.xml -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc copying build/lib/ironic/tests/unit/drivers/modules/irmc/test_bios.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 copying build/lib/ironic/tests/unit/drivers/modules/irmc/__init__.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/test_inspect_utils.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 copying build/lib/ironic/tests/unit/drivers/modules/test_image_utils.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_boot_mode_utils.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/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 copying build/lib/ironic/tests/unit/drivers/modules/test_inspector.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/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_common.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_noop.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/json_samples copying build/lib/ironic/tests/unit/drivers/modules/network/json_samples/network_data.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/json_samples copying build/lib/ironic/tests/unit/drivers/modules/network/test_flat.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network copying build/lib/ironic/tests/unit/drivers/modules/network/test_neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/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 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_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/__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/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/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/__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/ipxe_config_timeout.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/ipxe_config_boot_from_iso.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/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/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/ipxe_config_boot_from_anaconda.template -> /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/objects copying build/lib/ironic/tests/unit/objects/test_notification.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_chassis.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_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_conductor.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 copying build/lib/ironic/tests/unit/objects/test_node.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_trait.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_port.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_objects.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_portgroup.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_bios.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_fields.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_deployment.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_node_history.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_deploy_template.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/__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_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/conductor copying build/lib/ironic/tests/unit/conductor/mgr_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_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_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_deployments.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_steps.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_allocations.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_periodics.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_base_manager.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_notification_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_cleaning.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/test_rpcapi.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor copying build/lib/ironic/tests/unit/conductor/__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/test_verify.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_dnsmasq.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_factory.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/dhcp/test_neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp copying build/lib/ironic/tests/unit/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/policy_fixture.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db copying build/lib/ironic/tests/unit/db/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/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_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_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_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_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_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/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_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_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_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_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/__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/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_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/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/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_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_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/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/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/db/sqlalchemy creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/cmd copying build/lib/ironic/tests/unit/cmd/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 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 creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_fsm.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_hash_ring.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_image_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_raid.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_release_mappings.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_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_pxe_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_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_keystone.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_network.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_cinder.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_kickstart_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_wsgi_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_images.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_nova.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_molds.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/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_port_show.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_network_show.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_subnet_show.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_subnet_show_ipv6.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_port_show_ipv6.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/json_samples/neutron_network_show_ipv6.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/json_samples copying build/lib/ironic/tests/unit/common/test_policy.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_glance_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_states.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_driver_factory.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_rpc_service.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_neutron.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_rpc.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_args.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/common/test_context.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common copying build/lib/ironic/tests/unit/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/__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/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_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_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_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_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_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_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/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_proxy_middleware.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api/controllers 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/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_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_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_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_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_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_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_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_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_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_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_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_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_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_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/__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_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/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/__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/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_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/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_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/__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/test_acl_basic.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_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_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/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/api copying build/lib/ironic/tests/base.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional copying build/lib/ironic/tests/functional/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/functional creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/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 copying build/lib/ironic/tests/__init__.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/cmd copying build/lib/ironic/cmd/conductor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd copying build/lib/ironic/cmd/singleprocess.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd copying build/lib/ironic/cmd/dbsync.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd copying build/lib/ironic/cmd/api.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 copying build/lib/ironic/cmd/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/cmd creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/common/context.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/network.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/swift.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/fsm.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/indicator_states.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/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/keystone.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/neutron.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/wsgi_service.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/isolinux_config.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/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/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/hash_ring.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/release_mappings.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/nova.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/rpc.py -> /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/i18n.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/rpc_service.py -> /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/profiler.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/dhcp_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/image_service.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/faults.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/common copying build/lib/ironic/__init__.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/hacking copying build/lib/ironic/hacking/checks.py -> /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 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/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/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/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/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/functions.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 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/config.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/base.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/node.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/conductor.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/collection.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/chassis.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/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/event.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/notification_utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/ramdisk.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/port.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/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/driver.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/allocation.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/bios.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/versions.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/volume_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/v1/network-data-schema.json -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/__init__.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/portgroup.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/deploy_template.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/v1/utils.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1 copying build/lib/ironic/api/controllers/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/__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/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/hooks.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api copying build/lib/ironic/version.py -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic 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/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/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/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/xclarity.py to xclarity.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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/__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/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/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/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/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/database.py to database.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/generic.py to generic.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/ilo.py to ilo.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/fake_hardware.py to fake_hardware.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/ibmc.py to ibmc.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 byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/hardware_type.py to hardware_type.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/ipmi.py to ipmi.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/redfish.py to redfish.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/pxe.py to pxe.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/fake.py to fake.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/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/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/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/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/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/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/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/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/__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/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/console_utils.py to console_utils.cpython-311.pyc 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/noop_mgmt.py to noop_mgmt.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/deploy_utils.py to deploy_utils.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/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/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/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/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/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/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/__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/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/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/job.py to job.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/boot.py to boot.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/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/common.py to common.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/power.py to power.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/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/management.py to management.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/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/drac/inspect.py to inspect.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/drac/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/agent_client.py to agent_client.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/ipxe.py to ipxe.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 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/__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/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/boot_mode_utils.py to boot_mode_utils.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/image_cache.py to image_cache.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/inspector.py to inspector.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ipmitool.py to ipmitool.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/vendor.py to vendor.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/drivers/modules/ibmc/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/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/__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/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/inspect_utils.py to inspect_utils.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/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/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/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/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/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/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/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/__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/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/agent_power.py to agent_power.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/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/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/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/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/__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/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/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/__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/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/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/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/image_utils.py to image_utils.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/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/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/__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/__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/intel_ipmi.py to intel_ipmi.cpython-311.pyc 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/irmc.py to irmc.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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/verify.py to verify.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/__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/utils.py to utils.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/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/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/__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/migration.py to migration.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/__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/sqlalchemy/alembic/env.py to env.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/3cb628139ea4_nodes_add_console_enabled.py to 3cb628139ea4_nodes_add_console_enabled.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/31baaf680d2b_add_node_instance_info.py to 31baaf680d2b_add_node_instance_info.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2aac7e0872f6_add_deploy_templates.py to 2aac7e0872f6_add_deploy_templates.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/dbefd6bdaa2c_add_default_column_to_.py to dbefd6bdaa2c_add_default_column_to_.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/28c44432c9c3_add_node_description.py to 28c44432c9c3_add_node_description.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/21b331f883ef_add_provision_updated_at.py to 21b331f883ef_add_provision_updated_at.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/1e1d5ace7dc6_add_inspection_started_at_and_.py to 1e1d5ace7dc6_add_inspection_started_at_and_.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/c1846a214450_add_boot_mode_and_secure_boot.py to c1846a214450_add_boot_mode_and_secure_boot.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/48d6c242bb9b_add_node_tags.py to 48d6c242bb9b_add_node_tags.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/516faf1bb9b1_resizing_column_nodes_driver.py to 516faf1bb9b1_resizing_column_nodes_driver.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/cf1a80fdb352_add_node_network_data_field.py to cf1a80fdb352_add_node_network_data_field.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/487deb87cc9d_add_conductor_affinity_and_online.py to 487deb87cc9d_add_conductor_affinity_and_online.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/5674c57409b9_replace_nostate_with_available.py to 5674c57409b9_replace_nostate_with_available.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/789acc877671_add_raid_config.py to 789acc877671_add_raid_config.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 byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/405cfe08f18d_add_rescue_interface_to_node.py to 405cfe08f18d_add_rescue_interface_to_node.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/c0455649680c_port_name.py to c0455649680c_port_name.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/ac00b586ab95_node_indexes.py to ac00b586ab95_node_indexes.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/82c315d60161_add_bios_settings.py to 82c315d60161_add_bios_settings.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/b2ad35726bb0_add_node_lessee.py to b2ad35726bb0_add_node_lessee.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/bcdd431ba0bf_add_fields_for_all_interfaces.py to bcdd431ba0bf_add_fields_for_all_interfaces.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/daa1ba02d98_add_volume_connectors_table.py to daa1ba02d98_add_volume_connectors_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/242cc6a923b3_add_node_maintenance_reason.py to 242cc6a923b3_add_node_maintenance_reason.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/4f399b21ae71_add_node_clean_step.py to 4f399b21ae71_add_node_clean_step.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/3bea56f25597_add_unique_constraint_to_instance_uuid.py to 3bea56f25597_add_unique_constraint_to_instance_uuid.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/60cf717201bc_add_standalone_ports_supported.py to 60cf717201bc_add_standalone_ports_supported.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/5ea1b0d310e_added_port_group_table_and_altered_ports.py to 5ea1b0d310e_added_port_group_table_and_altered_ports.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/e294876e8028_add_node_network_interface.py to e294876e8028_add_node_network_interface.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/dd67b91a1981_add_allocations_table.py to dd67b91a1981_add_allocations_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/3ae36a5f5131_add_logical_name.py to 3ae36a5f5131_add_logical_name.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2bbd96b6ccb9_add_bios_fields_from_registry.py to 2bbd96b6ccb9_add_bios_fields_from_registry.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/cd2c80feb331_add_node_retired_field.py to cd2c80feb331_add_node_retired_field.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/b4130a7fc904_create_nodetraits_table.py to b4130a7fc904_create_nodetraits_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/93706939026c_add_node_protected_field.py to 93706939026c_add_node_protected_field.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/e918ff30eb42_resize_column_nodes_instance_info.py to e918ff30eb42_resize_column_nodes_instance_info.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2581ebaf0cb2_initial_migration.py to 2581ebaf0cb2_initial_migration.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/1a59178ebdf6_add_volume_targets_table.py to 1a59178ebdf6_add_volume_targets_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/2fb93ffd2af1_increase_node_name_length.py to 2fb93ffd2af1_increase_node_name_length.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/b9117ac17882_add_node_deploy_step.py to b9117ac17882_add_node_deploy_step.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/bb59b63f55a_add_node_driver_internal_info.py to bb59b63f55a_add_node_driver_internal_info.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/9cbeefa3763f_add_port_is_smartnic.py to 9cbeefa3763f_add_port_is_smartnic.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/493d8f27f235_add_portgroup_configuration_fields.py to 493d8f27f235_add_portgroup_configuration_fields.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/1e15e7122cc9_add_extra_column_to_deploy_templates.py to 1e15e7122cc9_add_extra_column_to_deploy_templates.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2d13bc3d6bba_add_bios_config_and_interface.py to 2d13bc3d6bba_add_bios_config_and_interface.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/3d86a077a3f2_add_port_physical_network.py to 3d86a077a3f2_add_port_physical_network.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/9ef41f07cb58_add_node_history_table.py to 9ef41f07cb58_add_node_history_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/10b163d4481e_add_port_portgroup_internal_info.py to 10b163d4481e_add_port_portgroup_internal_info.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/868cb606a74a_add_version_field_in_base_class.py to 868cb606a74a_add_version_field_in_base_class.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/664f85c2f622_add_conductor_group_to_nodes_conductors.py to 664f85c2f622_add_conductor_group_to_nodes_conductors.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/1d6951876d68_add_storage_interface_db_field_and_.py to 1d6951876d68_add_storage_interface_db_field_and_.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/2353895ecfae_add_conductor_hardware_interfaces_table.py to 2353895ecfae_add_conductor_hardware_interfaces_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/d2b036ae9378_add_automated_clean_field.py to d2b036ae9378_add_automated_clean_field.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/dd34e1f1303b_add_resource_class_to_node.py to dd34e1f1303b_add_resource_class_to_node.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/c14cef6dfedf_populate_node_network_interface.py to c14cef6dfedf_populate_node_network_interface.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/alembic/versions/ce6c4b3cf5a2_add_allocation_owner.py to ce6c4b3cf5a2_add_allocation_owner.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/migration.py to migration.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/models.py to models.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/db/sqlalchemy/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/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/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/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_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_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/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/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/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_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_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_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_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_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/third_party_driver_mocks.py to third_party_driver_mocks.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_noop_mgmt.py to test_noop_mgmt.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_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_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_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_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_vendor.py to test_vendor.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/ilo/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_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/__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_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/test_image_cache.py to test_image_cache.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_client.py to test_agent_client.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_agent_power.py to test_agent_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/test_console_utils.py to test_console_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_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_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_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_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_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_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_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/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_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/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_power.py to test_power.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_boot.py to test_boot.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_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/test_management.py to test_management.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_common.py to test_common.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_periodic_task.py to test_periodic_task.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_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_job.py to test_job.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/test_inspect.py to test_inspect.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/drac/__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/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/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_noop.py to test_noop.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_ipxe.py to test_ipxe.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/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/test_deploy_utils.py to test_deploy_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/test_ipmitool.py to test_ipmitool.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/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_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_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_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/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_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/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/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/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/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_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_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_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/irmc/test_management.py to test_management.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/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/irmc/test_periodic_task.py to test_periodic_task.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_bios.py to test_bios.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/irmc/test_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/irmc/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/test_inspect_utils.py to test_inspect_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/test_agent_base.py to test_agent_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/test_image_utils.py to test_image_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/test_boot_mode_utils.py to test_boot_mode_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/test_inspector.py to test_inspector.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/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_noop.py to test_noop.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/test_flat.py to test_flat.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/network/__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_neutron.py to test_neutron.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/drivers/modules/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/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_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/__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/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/__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/objects/test_notification.py to test_notification.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/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/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_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/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_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/objects/test_trait.py to test_trait.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/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/objects/test_objects.py to test_objects.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/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/objects/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/objects/test_fields.py to test_fields.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/test_deployment.py to test_deployment.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/objects/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/objects/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/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_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/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_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_manager.py to test_manager.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_deployments.py to test_deployments.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_steps.py to test_steps.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_allocations.py to test_allocations.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_periodics.py to test_periodics.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_base_manager.py to test_base_manager.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_notification_utils.py to test_notification_utils.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_cleaning.py to test_cleaning.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/test_rpcapi.py to test_rpcapi.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/conductor/__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/test_verify.py to test_verify.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_dnsmasq.py to test_dnsmasq.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_factory.py to test_factory.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/dhcp/test_neutron.py to test_neutron.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/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/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/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/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_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_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_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_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_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/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_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_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_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_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/__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/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_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/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/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_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_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/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/__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/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/common/test_fsm.py to test_fsm.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_hash_ring.py to test_hash_ring.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_image_service.py to test_image_service.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_raid.py to test_raid.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_release_mappings.py to test_release_mappings.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_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_pxe_utils.py to test_pxe_utils.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_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_keystone.py to test_keystone.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_network.py to test_network.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_cinder.py to test_cinder.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_kickstart_utils.py to test_kickstart_utils.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_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/common/test_images.py to test_images.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_nova.py to test_nova.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_molds.py to test_molds.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_policy.py to test_policy.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_glance_service.py to test_glance_service.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_states.py to test_states.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_driver_factory.py to test_driver_factory.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc_service.py to test_rpc_service.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/__init__.py to __init__.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_neutron.py to test_neutron.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_rpc.py to test_rpc.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_args.py to test_args.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/common/test_context.py to test_context.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/tests/unit/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/__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/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/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_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_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_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/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_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/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_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_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_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_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_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_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_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_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_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_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_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_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_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_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/__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_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/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/__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/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/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_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/__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/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_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/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/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/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/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/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/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/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/status.py to status.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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/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/__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/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/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/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/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/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/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/faults.py to faults.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/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/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/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/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/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/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/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/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/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/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/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/v1/node.py to node.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/conductor.py to conductor.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/collection.py to collection.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/chassis.py to chassis.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/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/event.py to event.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/notification_utils.py to notification_utils.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/ramdisk.py to ramdisk.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/port.py to port.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/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/driver.py to driver.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/allocation.py to allocation.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/bios.py to bios.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/versions.py to versions.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/volume_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/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/portgroup.py to portgroup.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/deploy_template.py to deploy_template.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/v1/utils.py to utils.cpython-311.pyc byte-compiling /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic/api/controllers/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/__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/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/hooks.py to hooks.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 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 copying etc/ironic/rootwrap.conf -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/etc/ironic creating /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/etc/ironic/rootwrap.d copying etc/ironic/rootwrap.d/ironic-utils.filters -> /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/etc/ironic/rootwrap.d/ running install_egg_info Copying ironic.egg-info to /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages/ironic-21.1.0.egg-info Skipping SOURCES.txt running install_scripts Installing ironic script to /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/bin Installing ironic-api script to /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/bin Installing ironic-conductor script to /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/bin Installing ironic-dbsync script to /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/bin Installing ironic-rootwrap script to /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/bin Installing ironic-status script to /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/bin Installing ironic-api-wsgi script to /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/bin rm -rf /build/reproducible-path/ironic-21.1.0/debian/tmp/usr/etc pkgos-dh_auto_test --no-py2 '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.*))' + PKGOS_TEST_PARALLEL=yes + PKGOS_TEST_SERIAL=no + PYTHONS=disabled + PYTHON3S=disabled + TEST_PARALLEL_OPT=--parallel + TEST_SERIAL_OPT= + echo WARNING: --no-py2 is deprecated, and always on. WARNING: --no-py2 is deprecated, and always on. + shift + py3versions -vr + PYTHON3S=3.11 + [ yes = no ] + [ no = yes ] + [ 3.11 = disabled ] + echo 3.11 + cut -d. -f1 + PYMAJOR=3 + 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 Implicitly adding PYTHONPATH=/build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages + 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 ] + STESTR=stestr + rm -rf .stestr + PYTHON=python3.11 stestr run --parallel --subunit ironic\.tests\.unit\.(?!(.*api\.controllers\.v1\.test_chassis\.TestPost\.test_create_chassis_unicode_description.*|.*common\.test_glance_service\.TestGlanceImageService\.test_show_makes_datetimes.*|.*drivers\.modules\.irmc\.test_raid\.IRMCRaidConfigurationInternalMethodsTestCase\.test__commit_raid_config_with_logical_drives.*|.*drivers\.modules\.test_pxe\.PXEAnacondaDeployTestCase\.test_reboot_to_instance.*)) + subunit2pyunit 2024-01-06 01:30:20.265 28133 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2024-01-06 01:30:20.325 28137 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2024-01-06 01:30:20.321 28135 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 2024-01-06 01:30:20.340 28141 INFO oslo_utils.netutils [-] Could not determine default network interface, using 127.0.0.1 for IPv4 address 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] Running stamp_revision -> 9ef41f07cb58 INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 2024-01-06 01:31:13.661 28135 INFO alembic.runtime.migration [None req-ca2eab51-4279-461b-aca1-502f64a397ed - - - - - -] Context impl SQLiteImpl. 2024-01-06 01:31:13.672 28135 INFO alembic.runtime.migration [None req-ca2eab51-4279-461b-aca1-502f64a397ed - - - - - -] Will assume non-transactional DDL. INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. 2024-01-06 01:31:14.213 28137 INFO alembic.runtime.migration [None req-c879aef5-a3ce-4463-a76a-760311f82da5 - - - - - -] Context impl SQLiteImpl. 2024-01-06 01:31:14.217 28137 INFO alembic.runtime.migration [None req-c879aef5-a3ce-4463-a76a-760311f82da5 - - - - - -] Will assume non-transactional DDL. 2024-01-06 01:31:14.573 28141 INFO alembic.runtime.migration [None req-e06d0777-e6cb-419f-bd49-e690bf87b99e - - - - - -] Context impl SQLiteImpl. 2024-01-06 01:31:14.583 28141 INFO alembic.runtime.migration [None req-e06d0777-e6cb-419f-bd49-e690bf87b99e - - - - - -] Will assume non-transactional DDL. ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals ironic.tests.unit.api.controllers.test_base.TestVersion.test_equals ... ok ironic.tests.unit.api.controllers.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.test_base.TestVersion.test_init ironic.tests.unit.api.controllers.test_base.TestVersion.test_init ... 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_chassis.TestDelete.test_delete_chassis_not_found ironic.tests.unit.api.controllers.v1.test_chassis.TestDelete.test_delete_chassis_not_found ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill ... ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals ironic.tests.unit.api.controllers.test_base.TestVersion.test_not_equals ... ok 2024-01-06 01:31:16.448 28133 INFO alembic.runtime.migration [None req-2809500c-858c-48c5-96ae-515e26db2ac3 - - - - - -] Context impl SQLiteImpl. 2024-01-06 01:31:16.458 28133 INFO alembic.runtime.migration [None req-2809500c-858c-48c5-96ae-515e26db2ac3 - - - - - -] Will assume non-transactional DDL. 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.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_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.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.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_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.TestVersion.test_parse_headers_ok ironic.tests.unit.api.controllers.test_base.TestVersion.test_parse_headers_ok ... ok INFO [alembic.runtime.migration] Running stamp_revision -> 9ef41f07cb58 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.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.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_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.test_base.TestBase.test_bad_uri ironic.tests.unit.api.controllers.test_base.TestBase.test_bad_uri ... 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_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_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.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_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_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_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.TestDelete.test_delete_by_uuid_with_json ironic.tests.unit.api.controllers.v1.test_deploy_template.TestDelete.test_delete_by_uuid_with_json ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_without_resource_class ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_backfill_without_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_allocation.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_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.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_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_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.TestDelete.test_delete_allocation_by_name ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_name ... ok POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '277b0eec-4afa-4e9c-8b41-48896fd366a6', 'owner': None, 'node': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/277b0eec-4afa-4e9c-8b41-48896fd366a6 Openstack-Request-Id: req-1bd9a58c-9ac6-48ef-a58c-42cb0629aa3c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "277b0eec-4afa-4e9c-8b41-48896fd366a6", "created_at": "2024-01-06T13:31:16.125993+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/277b0eec-4afa-4e9c-8b41-48896fd366a6", "rel": "self"}, {"href": "http://localhost/allocations/277b0eec-4afa-4e9c-8b41-48896fd366a6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET: /v1/allocations/277b0eec-4afa-4e9c-8b41-48896fd366a6 {} GOT:{'uuid': '277b0eec-4afa-4e9c-8b41-48896fd366a6', 'created_at': '2024-01-06T13:31:16.125993+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/277b0eec-4afa-4e9c-8b41-48896fd366a6', 'rel': 'self'}, {'href': 'http://localhost/allocations/277b0eec-4afa-4e9c-8b41-48896fd366a6', '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/a019410e-058f-4dee-a228-b869a39463e8 Openstack-Request-Id: req-155b6e79-c8e5-4d75-9698-d9b2e07ea6c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "a019410e-058f-4dee-a228-b869a39463e8", "created_at": "2024-01-06T13:31:16.912476+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/a019410e-058f-4dee-a228-b869a39463e8", "rel": "self"}, {"href": "http://localhost/allocations/a019410e-058f-4dee-a228-b869a39463e8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET: /v1/allocations/a019410e-058f-4dee-a228-b869a39463e8 {} GOT:{'uuid': 'a019410e-058f-4dee-a228-b869a39463e8', 'created_at': '2024-01-06T13:31:16.912476+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/a019410e-058f-4dee-a228-b869a39463e8', 'rel': 'self'}, {'href': 'http://localhost/allocations/a019410e-058f-4dee-a228-b869a39463e8', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '3e36b0f3-4985-4983-badc-3a75e7cca5ca', 'owner': None, 'node': '787da1d3-4eb9-4aa0-98cb-b561e1c91689'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9ca12f48-e07b-447b-b355-f0733ca47418 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 787da1d3-4eb9-4aa0-98cb-b561e1c91689 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-791d77fe-3ae7-4d25-b418-73813f2565ca 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': '0d233bf3-553f-4264-95d1-dcc83b531e42', 'owner': None, 'node': 'backfill-me'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/0d233bf3-553f-4264-95d1-dcc83b531e42 Openstack-Request-Id: req-2905c81e-7ea3-4f8c-8c80-c01680d2e7bb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "0d233bf3-553f-4264-95d1-dcc83b531e42", "created_at": "2024-01-06T13:31:18.426904+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/0d233bf3-553f-4264-95d1-dcc83b531e42", "rel": "self"}, {"href": "http://localhost/allocations/0d233bf3-553f-4264-95d1-dcc83b531e42", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET: /v1/allocations/0d233bf3-553f-4264-95d1-dcc83b531e42 {} GOT:{'uuid': '0d233bf3-553f-4264-95d1-dcc83b531e42', 'created_at': '2024-01-06T13:31:18.426904+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/0d233bf3-553f-4264-95d1-dcc83b531e42', 'rel': 'self'}, {'href': 'http://localhost/allocations/0d233bf3-553f-4264-95d1-dcc83b531e42', '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/236f584f-7259-4244-9bcd-c3aab2f044ce Openstack-Request-Id: req-532f511a-1c36-4109-af43-36d10e241615 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "236f584f-7259-4244-9bcd-c3aab2f044ce", "created_at": "2024-01-06T13:31:18.885442+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/236f584f-7259-4244-9bcd-c3aab2f044ce", "rel": "self"}, {"href": "http://localhost/allocations/236f584f-7259-4244-9bcd-c3aab2f044ce", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET: /v1/allocations/236f584f-7259-4244-9bcd-c3aab2f044ce {} GOT:{'uuid': '236f584f-7259-4244-9bcd-c3aab2f044ce', 'created_at': '2024-01-06T13:31:18.885442+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/236f584f-7259-4244-9bcd-c3aab2f044ce', 'rel': 'self'}, {'href': 'http://localhost/allocations/236f584f-7259-4244-9bcd-c3aab2f044ce', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '4a18b1c5-ba19-454d-ba90-ee755c5704bb', '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.TestListAllocations.test_allocation_get_all_invalid_api_version ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_get_all_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_allocation.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.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_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_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_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_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_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_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_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_node ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_by_node ... 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_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.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.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_allocation.TestPost.test_create_allocation_error ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_error ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_present ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_allocation_owner_present ... ok DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 204 No Content Openstack-Request-Id: req-e2f9f742-2418-4644-8b9f-7b8f7e526671 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 Content-Type: application/json Openstack-Request-Id: req-02fc145a-eb96-4cb8-b578-a1adf592aa4c X-Openstack-Ironic-Api-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/d2742522-a01b-4769-9eb6-247d74c59ad2 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-17e7daaf-b810-4764-b063-03ef3c8bf5c8 X-Openstack-Ironic-Api-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 d2742522-a01b-4769-9eb6-247d74c59ad2 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-971d9710-14e7-42f1-a974-4b669578bc57 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot complete the requested action because chassis e74c40e0-d825-11e2-a28f-0800200c9a66 contains nodes.\", \"debuginfo\": null}"} DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1f234063-9424-4a03-90a4-bc320045d4db X-Openstack-Ironic-Api-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/deploy_templates/CUSTOM_DT1 GOT:Response: 204 No Content Openstack-Request-Id: req-ffae2970-166a-4fbb-b396-2d6e78e89b5b 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 Content-Type: application/json Openstack-Request-Id: req-95441f21-0a35-4700-9474-a44a949f9832 X-Openstack-Ironic-Api-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-21720aac-9163-45b4-80cb-8ad702e06c0f 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/27381f98-6520-4091-83b0-ee30157ccc2b GOT:Response: 204 No Content Openstack-Request-Id: req-4ee0fa60-06eb-4bcb-9f7a-a811f3304153 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/b8cd8355-0eb4-40f7-8998-e6404bcebd06.json GOT:Response: 204 No Content Openstack-Request-Id: req-caad3356-dbcc-417b-b9ef-ecc4c1c8e8b2 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/7c1ded14-dd7e-4176-a511-67b98e68b494 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\"}"} PATCH: /v1/deploy_templates/aadc9fe2-5645-4e4b-a046-268303919136 [{'path': '/steps/0', 'value': {'interface': 'raid', 'step': 'create_configuration0', 'args': {}, 'priority': 10}, 'op': 'add'}, {'path': '/steps/1', 'value': {'interface': 'raid', 'step': 'create_configuration1', 'args': {}, 'priority': 10}, 'op': 'add'}, {'path': '/steps/2', 'value': {'interface': 'raid', 'step': 'create_configuration2', 'args': {}, 'priority': 10}, 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a6d91705-ff91-42e9-958c-6e125ffe9f09 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "aadc9fe2-5645-4e4b-a046-268303919136", "created_at": "2024-01-06T13:31:19.777264+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/aadc9fe2-5645-4e4b-a046-268303919136", "rel": "self"}, {"href": "http://localhost/deploy_templates/aadc9fe2-5645-4e4b-a046-268303919136", "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/d23486c6-600d-4120-9662-3296fd3f194b [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d83ef40f-b2f7-49dd-ba5f-a3c02a69a7bd X-Openstack-Ironic-Api-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/2589e697-4240-49ff-a6e6-f098c494bbcf [{'path': '/steps/2', 'op': 'add', 'value': {'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d5e4a034-0d91-4ce2-bfde-044bbc571b41 X-Openstack-Ironic-Api-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/e9cd0cfb-a1eb-45c8-b5da-6db700a26aa5 [{'path': '/foo', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e2528f81-a40d-4dc4-97b9-554bc3e8c145 X-Openstack-Ironic-Api-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/db0b32f9-5941-4a56-8dc6-7bb6af88f24e [{'path': '/steps/1', 'op': 'remove'}] 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.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_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_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_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_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_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.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_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.TestDelete.test_delete_allocation_invalid_api_version_without_check ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_api_version_without_check ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_invalid_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_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 GET: /v1/bad/path {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/allocations?owner=54321 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8243bd6d-ac44-4820-9b34-4dcd0e99a4dc 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-c736f773-0c17-4d17-9038-6a59a61c1992 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-20ff4986-a0b8-4e95-82c0-5352d0b1efca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} GET: /v1/allocations {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} GET: /v1/allocations {} GOT:{'allocations': [{'uuid': '8020a68a-be0b-4893-98c3-e232dd9218a8', 'created_at': '2024-01-06T13:31:20.011249+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/8020a68a-be0b-4893-98c3-e232dd9218a8', 'rel': 'self'}, {'href': 'http://localhost/allocations/8020a68a-be0b-4893-98c3-e232dd9218a8', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'c437c056-1e68-42a1-84ea-a7303959402a', 'created_at': '2024-01-06T13:31:20.025543+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/c437c056-1e68-42a1-84ea-a7303959402a', 'rel': 'self'}, {'href': 'http://localhost/allocations/c437c056-1e68-42a1-84ea-a7303959402a', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'd3f069cd-99ce-4d70-987b-8bdb93de60aa', 'created_at': '2024-01-06T13:31:20.038256+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/d3f069cd-99ce-4d70-987b-8bdb93de60aa', 'rel': 'self'}, {'href': 'http://localhost/allocations/d3f069cd-99ce-4d70-987b-8bdb93de60aa', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '22352131-b866-4a1e-85f4-65b104a56033', 'created_at': '2024-01-06T13:31:20.047343+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/22352131-b866-4a1e-85f4-65b104a56033', 'rel': 'self'}, {'href': 'http://localhost/allocations/22352131-b866-4a1e-85f4-65b104a56033', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'c69a1b95-d58a-4aa1-ad5a-c08da6c50f4b', 'created_at': '2024-01-06T13:31:20.052138+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/c69a1b95-d58a-4aa1-ad5a-c08da6c50f4b', 'rel': 'self'}, {'href': 'http://localhost/allocations/c69a1b95-d58a-4aa1-ad5a-c08da6c50f4b', 'rel': 'bookmark'}], 'node_uuid': None}]} GET: /v1/allocations/5c66142a-9bbc-4bc2-939d-6549b2117537 {} GOT:{'uuid': '5c66142a-9bbc-4bc2-939d-6549b2117537', 'created_at': '2024-01-06T13:31:20.448030+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/5c66142a-9bbc-4bc2-939d-6549b2117537', 'rel': 'self'}, {'href': 'http://localhost/allocations/5c66142a-9bbc-4bc2-939d-6549b2117537', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/allocations/5c66142a-9bbc-4bc2-939d-6549b2117537 {} GOT:{'uuid': '5c66142a-9bbc-4bc2-939d-6549b2117537', 'created_at': '2024-01-06T13:31:20.448030+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/5c66142a-9bbc-4bc2-939d-6549b2117537', 'rel': 'self'}, {'href': 'http://localhost/allocations/5c66142a-9bbc-4bc2-939d-6549b2117537', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/allocations/70c19ec3-fa9a-4817-a5f2-3ac9ae5d9c9c {} GOT:{'uuid': '70c19ec3-fa9a-4817-a5f2-3ac9ae5d9c9c', 'created_at': '2024-01-06T13:31:21.115932+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/70c19ec3-fa9a-4817-a5f2-3ac9ae5d9c9c', 'rel': 'self'}, {'href': 'http://localhost/allocations/70c19ec3-fa9a-4817-a5f2-3ac9ae5d9c9c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/allocations/20f60b93-03f4-4cf4-8885-62d0f27238b2 {} GOT:{'uuid': '20f60b93-03f4-4cf4-8885-62d0f27238b2', 'created_at': '2024-01-06T13:31:21.500489+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/20f60b93-03f4-4cf4-8885-62d0f27238b2', 'rel': 'self'}, {'href': 'http://localhost/allocations/20f60b93-03f4-4cf4-8885-62d0f27238b2', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/node/f7ff70ed-6103-4d23-87c0-c1a804b21794/allocation {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/node/3be3a2e9-51dc-41f2-b5a1-ff56edf015d6/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.TestListAllocations.test_collection_links ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_collection_links ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node ironic.tests.unit.api.controllers.v1.test_allocation.TestDelete.test_delete_allocation_invalid_node ... ok ironic.tests.unit.api.controllers.v1.test_allocation.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.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_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_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.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_deploy_template.TestPatch.test_remove_only_step_fail ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_remove_only_step_fail ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/4a18b1c5-ba19-454d-ba90-ee755c5704bb Openstack-Request-Id: req-85a355b5-eaa0-4bd3-af96-901543328a3d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "4a18b1c5-ba19-454d-ba90-ee755c5704bb", "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/4a18b1c5-ba19-454d-ba90-ee755c5704bb", "rel": "self"}, {"href": "http://localhost/allocations/4a18b1c5-ba19-454d-ba90-ee755c5704bb", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/4a18b1c5-ba19-454d-ba90-ee755c5704bb {} GOT:{'uuid': '4a18b1c5-ba19-454d-ba90-ee755c5704bb', '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/4a18b1c5-ba19-454d-ba90-ee755c5704bb', 'rel': 'self'}, {'href': 'http://localhost/allocations/4a18b1c5-ba19-454d-ba90-ee755c5704bb', 'rel': 'bookmark'}], 'node_uuid': None} POST: /v1/allocations {'candidate_nodes': ['this/is/not a/node/name'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'a31a6c9d-8b88-4a3b-855a-2dbd9913fa50', 'owner': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d76829fb-8b9e-4742-88c3-18f3067fa2e0 X-Openstack-Ironic-Api-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': '3011d440-9d56-40c3-92a6-1d478ab9243b', 'owner': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b8d70d8c-fb81-4338-88a3-f1e361b21ff5 X-Openstack-Ironic-Api-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': '244e423e-2fb9-4f7b-b09f-c501d1c98742', 'owner': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/244e423e-2fb9-4f7b-b09f-c501d1c98742 Openstack-Request-Id: req-848b312f-8813-40b6-b17c-e7a61e80fc0d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "244e423e-2fb9-4f7b-b09f-c501d1c98742", "created_at": "2024-01-06T13:31:20.915626+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/244e423e-2fb9-4f7b-b09f-c501d1c98742", "rel": "self"}, {"href": "http://localhost/allocations/244e423e-2fb9-4f7b-b09f-c501d1c98742", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/244e423e-2fb9-4f7b-b09f-c501d1c98742 {} GOT:{'uuid': '244e423e-2fb9-4f7b-b09f-c501d1c98742', 'created_at': '2024-01-06T13:31:20.915626+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/244e423e-2fb9-4f7b-b09f-c501d1c98742', 'rel': 'self'}, {'href': 'http://localhost/allocations/244e423e-2fb9-4f7b-b09f-c501d1c98742', 'rel': 'bookmark'}], 'node_uuid': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '7c839a9f-2f2e-455d-b238-3f43e9ff469b', 'owner': None} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f09d60d4-7cdb-49e3-b60d-75dd16be9afe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'owner': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/bf146b31-5dbb-47b1-9440-06b814f3d3db Openstack-Request-Id: req-4c19b189-780e-4eef-9a89-fd24e74775ca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "bf146b31-5dbb-47b1-9440-06b814f3d3db", "created_at": "2024-01-06T13:31:21.809634+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/bf146b31-5dbb-47b1-9440-06b814f3d3db", "rel": "self"}, {"href": "http://localhost/allocations/bf146b31-5dbb-47b1-9440-06b814f3d3db", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/bf146b31-5dbb-47b1-9440-06b814f3d3db {} GOT:{'uuid': 'bf146b31-5dbb-47b1-9440-06b814f3d3db', 'created_at': '2024-01-06T13:31:21.809634+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/bf146b31-5dbb-47b1-9440-06b814f3d3db', 'rel': 'self'}, {'href': 'http://localhost/allocations/bf146b31-5dbb-47b1-9440-06b814f3d3db', 'rel': 'bookmark'}], 'node_uuid': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '15a02af8-59d2-4376-917b-1562d10aed48', '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': '7c010f04-13a2-485f-86cb-25a5b2a75120', 'owner': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d8528a9c-b7a8-493f-ab66-675975d7c494 X-Openstack-Ironic-Api-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': 'd15869bc-63ff-451f-97fe-a668309b734a', 'owner': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-db4fac10-864f-4b70-a8b6-930f6287f45b X-Openstack-Ironic-Api-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': '01f25f5d-f645-4cc0-8b90-d02e2a3fa946', '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_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_empty ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_empty ... ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_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_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_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.TestPatch.test_add_multi ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_add_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_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_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_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_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_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_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_owner_not_allowed ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_allocation_owner_not_allowed ... ok DELETE: /v1/allocations/466e3b57-5608-4bce-b331-3e73aa4cca3b GOT:Response: 204 No Content Openstack-Request-Id: req-02eecba3-abba-4716-ab4b-2a65e1471db1 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-b175acc9-96a4-4c38-a255-83876a0af7eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 DELETE: /v1/allocations/blah GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-560ea716-24bb-4a9d-a2d3-8c25c188cdbc X-Openstack-Ironic-Api-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-6df2619c-d3fe-425b-b6b7-fd170da2ed5c 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-1c172c50-5bf5-4fe7-8182-147054b91c26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} DELETE: /v1/nodes/83f7da1f-b0a9-4f2d-a3dd-da27dd42f184/allocation GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-00a99d82-c830-4dfa-9a0d-eabc64833754 X-Openstack-Ironic-Api-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 83f7da1f-b0a9-4f2d-a3dd-da27dd42f184 was not found\", \"debuginfo\": null}"} DELETE: /v1/allocations/0ff1af45-a23f-4ebf-b27d-bcd689a002a0 GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} DELETE: /v1/allocations/ba!na!na1 GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow allocations\"}"} DELETE: /v1/nodes/575d1f02-bba2-4775-9ea0-ae0fc335ec01/allocation GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fe316a3d-7757-4b89-bde2-fb37c334ba92 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 575d1f02-bba2-4775-9ea0-ae0fc335ec01 could not be found.\", \"debuginfo\": null}"} DELETE: /v1/allocations/1dece94a-ecbc-4021-8953-38f19f7ed834 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-2429f183-ebc8-4ded-8cbd-6cff0125c195 X-Openstack-Ironic-Api-Maximum-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/allocations/9128e478-3964-4ca7-b431-1f2ae653a67c [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6ff7880a-fee5-47f6-981b-e8da13af5f7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "9128e478-3964-4ca7-b431-1f2ae653a67c", "created_at": "2024-01-06T13:31:23.620791+00:00", "updated_at": "2024-01-06T13:31:23.795663+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/9128e478-3964-4ca7-b431-1f2ae653a67c", "rel": "self"}, {"href": "http://localhost/allocations/9128e478-3964-4ca7-b431-1f2ae653a67c", "rel": "bookmark"}], "node_uuid": null} PATCH: /v1/allocations/d48a0a6a-a197-4922-ab49-a78401d8467e [{'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-765997ec-cc6c-4d29-8522-0f339751b293 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "d48a0a6a-a197-4922-ab49-a78401d8467e", "created_at": "2024-01-06T13:31:24.176917+00:00", "updated_at": "2024-01-06T13:31:24.317623+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/d48a0a6a-a197-4922-ab49-a78401d8467e", "rel": "self"}, {"href": "http://localhost/allocations/d48a0a6a-a197-4922-ab49-a78401d8467e", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/d48a0a6a-a197-4922-ab49-a78401d8467e {} GOT:{'uuid': 'd48a0a6a-a197-4922-ab49-a78401d8467e', 'created_at': '2024-01-06T13:31:24.176917+00:00', 'updated_at': '2024-01-06T13:31:24.317623+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/d48a0a6a-a197-4922-ab49-a78401d8467e', 'rel': 'self'}, {'href': 'http://localhost/allocations/d48a0a6a-a197-4922-ab49-a78401d8467e', 'rel': 'bookmark'}], 'node_uuid': None} PATCH: /v1/allocations/68fa25d8-f439-4df6-b53f-eb39d7ba2ddd [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e59bfa32-b55d-45f7-a334-fb5e910cfc75 X-Openstack-Ironic-Api-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/5d75858e-9f00-40a1-84f3-fefda60f7e76 [{'path': '/extra/foo2', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8dd9f172-699e-4698-828f-8356027bf458 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5d75858e-9f00-40a1-84f3-fefda60f7e76", "created_at": "2024-01-06T13:31:25.178513+00:00", "updated_at": "2024-01-06T13:31:25.318747+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/5d75858e-9f00-40a1-84f3-fefda60f7e76", "rel": "self"}, {"href": "http://localhost/allocations/5d75858e-9f00-40a1-84f3-fefda60f7e76", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/5d75858e-9f00-40a1-84f3-fefda60f7e76 {} GOT:{'uuid': '5d75858e-9f00-40a1-84f3-fefda60f7e76', 'created_at': '2024-01-06T13:31:25.178513+00:00', 'updated_at': '2024-01-06T13:31:25.318747+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/5d75858e-9f00-40a1-84f3-fefda60f7e76', 'rel': 'self'}, {'href': 'http://localhost/allocations/5d75858e-9f00-40a1-84f3-fefda60f7e76', 'rel': 'bookmark'}], 'node_uuid': None} 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_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_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_allocation.TestPatch.test_remove_non_existent_property_fail ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_non_existent_property_fail ... ok GOT:{'allocations': [{'uuid': '0a03f47b-ae09-404d-bf05-4e6985c01686', 'created_at': '2024-01-06T13:31:22.637147+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/0a03f47b-ae09-404d-bf05-4e6985c01686', 'rel': 'self'}, {'href': 'http://localhost/allocations/0a03f47b-ae09-404d-bf05-4e6985c01686', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '7940bf05-733c-432c-ab14-034b75494cb6', 'created_at': '2024-01-06T13:31:22.650455+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/7940bf05-733c-432c-ab14-034b75494cb6', 'rel': 'self'}, {'href': 'http://localhost/allocations/7940bf05-733c-432c-ab14-034b75494cb6', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '3a315758-c289-41c5-977e-047fd499e127', 'created_at': '2024-01-06T13:31:22.663258+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/3a315758-c289-41c5-977e-047fd499e127', 'rel': 'self'}, {'href': 'http://localhost/allocations/3a315758-c289-41c5-977e-047fd499e127', 'rel': 'bookmark'}], 'node_uuid': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=3a315758-c289-41c5-977e-047fd499e127'} GET: /v1/allocations?fields=uuid,extra {} GOT:{'allocations': [{'uuid': '724b6276-ebe9-45d8-8ca8-6d74a4a9b05c', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/724b6276-ebe9-45d8-8ca8-6d74a4a9b05c', 'rel': 'self'}, {'href': 'http://localhost/allocations/724b6276-ebe9-45d8-8ca8-6d74a4a9b05c', 'rel': 'bookmark'}]}, {'uuid': '4fdbb7e8-005f-4ac7-b511-8631c762c21f', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/4fdbb7e8-005f-4ac7-b511-8631c762c21f', 'rel': 'self'}, {'href': 'http://localhost/allocations/4fdbb7e8-005f-4ac7-b511-8631c762c21f', 'rel': 'bookmark'}]}, {'uuid': '4714d37f-5545-4b00-a9c2-1c8b3cb6b63b', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/4714d37f-5545-4b00-a9c2-1c8b3cb6b63b', 'rel': 'self'}, {'href': 'http://localhost/allocations/4714d37f-5545-4b00-a9c2-1c8b3cb6b63b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=4714d37f-5545-4b00-a9c2-1c8b3cb6b63b'} GET: /v1/allocations {} GOT:{'allocations': [{'uuid': 'e2581f77-d0a9-4d22-876f-bf8d701ff0e0', 'created_at': '2024-01-06T13:31:23.438933+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/e2581f77-d0a9-4d22-876f-bf8d701ff0e0', 'rel': 'self'}, {'href': 'http://localhost/allocations/e2581f77-d0a9-4d22-876f-bf8d701ff0e0', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'af9e3756-2a0f-4881-b317-516b5b5ff2a2', 'created_at': '2024-01-06T13:31:23.451494+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/af9e3756-2a0f-4881-b317-516b5b5ff2a2', 'rel': 'self'}, {'href': 'http://localhost/allocations/af9e3756-2a0f-4881-b317-516b5b5ff2a2', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '3b647985-4e17-4452-ad23-38407f510eeb', 'created_at': '2024-01-06T13:31:23.455965+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/3b647985-4e17-4452-ad23-38407f510eeb', 'rel': 'self'}, {'href': 'http://localhost/allocations/3b647985-4e17-4452-ad23-38407f510eeb', 'rel': 'bookmark'}], 'node_uuid': None}], 'next': 'http://localhost/v1/allocations?sort_key=id&sort_dir=asc&limit=3&marker=3b647985-4e17-4452-ad23-38407f510eeb'} GET: /v1/allocations {} GOT:{'allocations': []} GET: /v1/allocations?node=node-1 {} GOT:{'allocations': [{'uuid': '8dbefe60-4fa8-415d-ac32-15bed4bf23bc', 'created_at': '2024-01-06T13:31:24.108542+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/8dbefe60-4fa8-415d-ac32-15bed4bf23bc', 'rel': 'self'}, {'href': 'http://localhost/allocations/8dbefe60-4fa8-415d-ac32-15bed4bf23bc', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '5b498a48-bae9-4d7e-8611-53cbca8a10d6', 'created_at': '2024-01-06T13:31:24.118069+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/5b498a48-bae9-4d7e-8611-53cbca8a10d6', 'rel': 'self'}, {'href': 'http://localhost/allocations/5b498a48-bae9-4d7e-8611-53cbca8a10d6', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '4e57a34e-2871-4c15-b457-b9ff1cc47de0', 'created_at': '2024-01-06T13:31:24.131609+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/4e57a34e-2871-4c15-b457-b9ff1cc47de0', 'rel': 'self'}, {'href': 'http://localhost/allocations/4e57a34e-2871-4c15-b457-b9ff1cc47de0', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} GET: /v1/allocations?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'allocations': [{'uuid': 'e4cfac4b-063e-4cf0-8af2-cdd2b69b2932', 'created_at': '2024-01-06T13:31:24.757915+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/e4cfac4b-063e-4cf0-8af2-cdd2b69b2932', 'rel': 'self'}, {'href': 'http://localhost/allocations/e4cfac4b-063e-4cf0-8af2-cdd2b69b2932', '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-6e421f20-904b-417e-bdf5-9f426bb66b1f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node banana could not be found.\", \"debuginfo\": null}"} GET: /v1/allocations?owner=12345 {} ironic.tests.unit.api.controllers.v1.test_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.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_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_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.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_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_allocation.TestPatch.test_remove_uuid ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_remove_uuid ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f9462ce3-2b2b-42d6-b184-117aa805e519 X-Openstack-Ironic-Api-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': '20adbf33-ee6b-4586-9b68-8720d76fdc6c', 'owner': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/20adbf33-ee6b-4586-9b68-8720d76fdc6c Openstack-Request-Id: req-24db604d-ea9e-4346-acb4-6aed8f2dc0f5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "20adbf33-ee6b-4586-9b68-8720d76fdc6c", "created_at": "2024-01-06T13:31:23.824884+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/20adbf33-ee6b-4586-9b68-8720d76fdc6c", "rel": "self"}, {"href": "http://localhost/allocations/20adbf33-ee6b-4586-9b68-8720d76fdc6c", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/20adbf33-ee6b-4586-9b68-8720d76fdc6c {} GOT:{'uuid': '20adbf33-ee6b-4586-9b68-8720d76fdc6c', 'created_at': '2024-01-06T13:31:23.824884+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/20adbf33-ee6b-4586-9b68-8720d76fdc6c', 'rel': 'self'}, {'href': 'http://localhost/allocations/20adbf33-ee6b-4586-9b68-8720d76fdc6c', 'rel': 'bookmark'}], 'node_uuid': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'traits': [], 'uuid': '5ec541c3-6ec2-4967-a1f1-8795f1ee1509', 'owner': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-21aa5a27-df3b-4d3a-ba40-4e37fdc999b0 X-Openstack-Ironic-Api-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': '5baf9b4f-814e-4107-b6ba-f65312d55fd8', 'owner': '12345'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/5baf9b4f-814e-4107-b6ba-f65312d55fd8 Openstack-Request-Id: req-0a904348-bf84-4d0b-aae1-4d7658e3d1fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5baf9b4f-814e-4107-b6ba-f65312d55fd8", "created_at": "2024-01-06T13:31:24.687766+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/5baf9b4f-814e-4107-b6ba-f65312d55fd8", "rel": "self"}, {"href": "http://localhost/allocations/5baf9b4f-814e-4107-b6ba-f65312d55fd8", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/5baf9b4f-814e-4107-b6ba-f65312d55fd8 {} GOT:{'uuid': '5baf9b4f-814e-4107-b6ba-f65312d55fd8', 'created_at': '2024-01-06T13:31:24.687766+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/5baf9b4f-814e-4107-b6ba-f65312d55fd8', 'rel': 'self'}, {'href': 'http://localhost/allocations/5baf9b4f-814e-4107-b6ba-f65312d55fd8', 'rel': 'bookmark'}], 'node_uuid': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '9592b90b-a4ba-40bb-a470-ab5fa45c7bd0', 'owner': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/9592b90b-a4ba-40bb-a470-ab5fa45c7bd0 Openstack-Request-Id: req-3a8c2eed-084a-48f7-9878-658cc2bb4e9b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "9592b90b-a4ba-40bb-a470-ab5fa45c7bd0", "created_at": "2024-01-06T13:31:25.057451+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/9592b90b-a4ba-40bb-a470-ab5fa45c7bd0", "rel": "self"}, {"href": "http://localhost/allocations/9592b90b-a4ba-40bb-a470-ab5fa45c7bd0", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/9592b90b-a4ba-40bb-a470-ab5fa45c7bd0 {} GOT:{'uuid': '9592b90b-a4ba-40bb-a470-ab5fa45c7bd0', 'created_at': '2024-01-06T13:31:25.057451+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/9592b90b-a4ba-40bb-a470-ab5fa45c7bd0', 'rel': 'self'}, {'href': 'http://localhost/allocations/9592b90b-a4ba-40bb-a470-ab5fa45c7bd0', 'rel': 'bookmark'}], 'node_uuid': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '08b80ada-5aef-4a67-a56b-e8894366a882', 'owner': '12345'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-46670d2f-4776-4c98-9a7c-1dde8ec10618 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': 'bb265228-c5f4-4a9a-8eef-6f6af943974b', 'owner': '12345'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1c3bfc88-9e32-4702-925e-21fd09a67e78 X-Openstack-Ironic-Api-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': 'f5ff913c-d3ad-41c2-a31c-599b2d34696a', 'owner': None} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e7437166-e375-40d6-9c0f-a7ec97d5e64a X-Openstack-Ironic-Api-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': '09014e74-669a-4d00-88ce-14f340628a23', '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.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_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_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_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_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_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.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_by_node_resource_invalid_api_version ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_by_node_resource_invalid_api_version ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f1729d01-640e-4d83-b50d-916ccd071c17 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "db0b32f9-5941-4a56-8dc6-7bb6af88f24e", "created_at": "2024-01-06T13:31:21.309528+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/db0b32f9-5941-4a56-8dc6-7bb6af88f24e", "rel": "self"}, {"href": "http://localhost/deploy_templates/db0b32f9-5941-4a56-8dc6-7bb6af88f24e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration0", "args": {}, "priority": 10}, {"interface": "raid", "step": "create_configuration2", "args": {}, "priority": 10}]} PATCH: /v1/deploy_templates/c7e3f7ca-8ca2-4d25-a2e4-6309f11e5fb2 [{'path': '/name', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c1427c00-c10c-465a-b2ec-6f4e7b58e441 X-Openstack-Ironic-Api-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/e3f118f9-18ea-4d79-90d5-9307119f12c9 [{'path': '/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-904dcb86-3e0a-4e34-9155-90c6fab83646 X-Openstack-Ironic-Api-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/435345bc-23f0-4ed3-836f-b89cda92a9fb [{'path': '/steps/1', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-38664461-506d-4401-b34a-b968eda25c66 X-Openstack-Ironic-Api-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/250a25b8-04dd-4d10-b218-1ec0effa335c [{'path': '/steps/0/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-57d911ef-4c41-427a-8452-ff67973cf798 X-Openstack-Ironic-Api-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/d3859821-e86d-47b0-925a-27aa92609b55 [{'path': '/steps/0', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7e6ed7b3-1f25-4683-9351-111ce3079197 X-Openstack-Ironic-Api-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/c1c8e078-6bb9-4383-8cce-44dcca0d5ef1 [{'path': '/steps', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f0fe13d9-483e-4552-a233-1b8b2d7d7fb7 X-Openstack-Ironic-Api-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/3c06d010-e089-4299-9bbd-1afdba4f8ccb [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-78b67ba8-8241-43f3-bcd9-477e321a64e4 X-Openstack-Ironic-Api-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/72d201d9-d48d-4593-b788-98af6d700d50 [{'path': '/steps', 'op': 'replace', 'value': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '0'}, 'priority': 0}, {'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': '1'}, 'priority': 1}]}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d4dbfc41-93a8-4613-aa4d-75eef2aff501 X-Openstack-Ironic-Api-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/3bb760c9-8e55-4153-a96b-4b6c62058cdd [{'path': '/steps', 'op': 'replace', 'value': []}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f60eb5e7-540e-4b79-9a2d-d5dbec07e12e X-Openstack-Ironic-Api-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/5bfddbab-794a-4c25-ab39-f32ceedde39f [{'path': '/name', 'op': 'replace', 'value': None}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-29d222e8-618f-43a6-91aa-71b2439d1a26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: None is not of type 'string'\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/c85d369e-c15d-49b4-912d-893a0016072c [{'path': '/name', 'op': 'replace', 'value': 'not-a-trait'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bede611f-1035-4071-a21a-13fcddbb024d X-Openstack-Ironic-Api-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/c0552a39-2fcf-4736-b671-4495f91dd654 [{'path': '/name', 'op': 'replace', 'value': 'CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-94ccd9c8-2405-4241-8997-4134dfb94569 X-Openstack-Ironic-Api-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/76645107-4be6-4404-bc1d-fbee88a83e0a [{'path': '/steps/0', 'op': 'replace', 'value': {'interface': 'foo', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}}] 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.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.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_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_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_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.TestListAllocations.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_collection_custom_fields ... ok PATCH: /v1/allocations/5d75858e-9f00-40a1-84f3-fefda60f7e76 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1bd7cab0-40b8-42db-95b3-c90de504f838 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5d75858e-9f00-40a1-84f3-fefda60f7e76", "created_at": "2024-01-06T13:31:25.178513+00:00", "updated_at": "2024-01-06T13:31:25.538330+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/5d75858e-9f00-40a1-84f3-fefda60f7e76", "rel": "self"}, {"href": "http://localhost/allocations/5d75858e-9f00-40a1-84f3-fefda60f7e76", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/5d75858e-9f00-40a1-84f3-fefda60f7e76 {} GOT:{'uuid': '5d75858e-9f00-40a1-84f3-fefda60f7e76', 'created_at': '2024-01-06T13:31:25.178513+00:00', 'updated_at': '2024-01-06T13:31:25.538330+00:00', 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/5d75858e-9f00-40a1-84f3-fefda60f7e76', 'rel': 'self'}, {'href': 'http://localhost/allocations/5d75858e-9f00-40a1-84f3-fefda60f7e76', 'rel': 'bookmark'}], 'node_uuid': None} PATCH: /v1/allocations/55903bf5-ef7c-41e0-aeb1-bad9cbeb114f [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bbe1f1e5-a33c-49ed-b35b-f65665c61249 X-Openstack-Ironic-Api-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/271fbced-f947-4dd3-92c8-cac379dc9f76 [{'path': '/extra/a', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5bc3549e-095d-429d-88f2-1199ec133a59 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "271fbced-f947-4dd3-92c8-cac379dc9f76", "created_at": "2024-01-06T13:31:26.272517+00:00", "updated_at": "2024-01-06T13:31:26.412148+00:00", "candidate_nodes": [], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/271fbced-f947-4dd3-92c8-cac379dc9f76", "rel": "self"}, {"href": "http://localhost/allocations/271fbced-f947-4dd3-92c8-cac379dc9f76", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/271fbced-f947-4dd3-92c8-cac379dc9f76 {} GOT:{'uuid': '271fbced-f947-4dd3-92c8-cac379dc9f76', 'created_at': '2024-01-06T13:31:26.272517+00:00', 'updated_at': '2024-01-06T13:31:26.412148+00:00', 'candidate_nodes': [], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/271fbced-f947-4dd3-92c8-cac379dc9f76', 'rel': 'self'}, {'href': 'http://localhost/allocations/271fbced-f947-4dd3-92c8-cac379dc9f76', 'rel': 'bookmark'}], 'node_uuid': None} PATCH: /v1/allocations/703835b5-6168-468d-a526-496f2ae49295 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a7dd4759-6e70-47e0-a97e-248c23e1ddf2 X-Openstack-Ironic-Api-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/35e2d265-8691-4d85-95b9-58ec40af2c7d [{'path': '/name', 'value': '[test]', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5ce6663e-d04e-43bb-b990-59e0528522b1 X-Openstack-Ironic-Api-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/07ee6632-6b13-4e77-8469-dbdd590e4732 [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5b005609-50eb-427d-b2b9-7418a37b77a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "07ee6632-6b13-4e77-8469-dbdd590e4732", "created_at": "2024-01-06T13:31:27.350064+00:00", "updated_at": "2024-01-06T13:31:27.448410+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/07ee6632-6b13-4e77-8469-dbdd590e4732", "rel": "self"}, {"href": "http://localhost/allocations/07ee6632-6b13-4e77-8469-dbdd590e4732", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/07ee6632-6b13-4e77-8469-dbdd590e4732 {} GOT:{'uuid': '07ee6632-6b13-4e77-8469-dbdd590e4732', 'created_at': '2024-01-06T13:31:27.350064+00:00', 'updated_at': '2024-01-06T13:31:27.448410+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/07ee6632-6b13-4e77-8469-dbdd590e4732', 'rel': 'self'}, {'href': 'http://localhost/allocations/07ee6632-6b13-4e77-8469-dbdd590e4732', 'rel': 'bookmark'}], 'node_uuid': None} PATCH: /v1/allocations/d3bb0e1f-3918-41c7-ae4c-5723e2887066 [{'path': '/name', 'value': None, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20040caf-a0b0-4af9-85a0-2311ea7ab18b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "d3bb0e1f-3918-41c7-ae4c-5723e2887066", "created_at": "2024-01-06T13:31:27.709088+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/d3bb0e1f-3918-41c7-ae4c-5723e2887066", "rel": "self"}, {"href": "http://localhost/allocations/d3bb0e1f-3918-41c7-ae4c-5723e2887066", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/d3bb0e1f-3918-41c7-ae4c-5723e2887066 {} GOT:{'uuid': 'd3bb0e1f-3918-41c7-ae4c-5723e2887066', 'created_at': '2024-01-06T13:31:27.709088+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/d3bb0e1f-3918-41c7-ae4c-5723e2887066', 'rel': 'self'}, {'href': 'http://localhost/allocations/d3bb0e1f-3918-41c7-ae4c-5723e2887066', 'rel': 'bookmark'}], 'node_uuid': None} PATCH: /v1/allocations/80136b4f-9cb1-4de8-985b-da8b455c7764 [{'path': '/name', 'value': 'test', 'op': 'replace'}] 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_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_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_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_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_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.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_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_allocation.TestPatch.test_update_not_allowed ironic.tests.unit.api.controllers.v1.test_allocation.TestPatch.test_update_not_allowed ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/09014e74-669a-4d00-88ce-14f340628a23 Openstack-Request-Id: req-59aad8c1-8040-40ac-89ba-c80ebff20c84 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "09014e74-669a-4d00-88ce-14f340628a23", "created_at": "2024-01-06T13:31:26.749888+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/09014e74-669a-4d00-88ce-14f340628a23", "rel": "self"}, {"href": "http://localhost/allocations/09014e74-669a-4d00-88ce-14f340628a23", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/09014e74-669a-4d00-88ce-14f340628a23 {} GOT:{'uuid': '09014e74-669a-4d00-88ce-14f340628a23', 'created_at': '2024-01-06T13:31:26.749888+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/09014e74-669a-4d00-88ce-14f340628a23', 'rel': 'self'}, {'href': 'http://localhost/allocations/09014e74-669a-4d00-88ce-14f340628a23', 'rel': 'bookmark'}], 'node_uuid': None} POST: /v1/allocations {'candidate_nodes': ['node-1', 'e1ef2f42-0ae8-43cc-b217-c328c4a38336'], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '38f8ab42-a7da-4355-85e1-45cc5e72ac2f', 'owner': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/38f8ab42-a7da-4355-85e1-45cc5e72ac2f Openstack-Request-Id: req-5001393f-b549-4e4e-b0a9-bf05a69568ea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "38f8ab42-a7da-4355-85e1-45cc5e72ac2f", "created_at": "2024-01-06T13:31:27.178147+00:00", "updated_at": null, "candidate_nodes": ["1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "e1ef2f42-0ae8-43cc-b217-c328c4a38336"], "extra": {}, "last_error": null, "name": null, "owner": null, "resource_class": "baremetal", "state": "allocating", "traits": [], "links": [{"href": "http://localhost/v1/allocations/38f8ab42-a7da-4355-85e1-45cc5e72ac2f", "rel": "self"}, {"href": "http://localhost/allocations/38f8ab42-a7da-4355-85e1-45cc5e72ac2f", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/38f8ab42-a7da-4355-85e1-45cc5e72ac2f {} GOT:{'uuid': '38f8ab42-a7da-4355-85e1-45cc5e72ac2f', 'created_at': '2024-01-06T13:31:27.178147+00:00', 'updated_at': None, 'candidate_nodes': ['1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'e1ef2f42-0ae8-43cc-b217-c328c4a38336'], 'extra': {}, 'last_error': None, 'name': None, 'owner': None, 'resource_class': 'baremetal', 'state': 'allocating', 'traits': [], 'links': [{'href': 'http://localhost/v1/allocations/38f8ab42-a7da-4355-85e1-45cc5e72ac2f', 'rel': 'self'}, {'href': 'http://localhost/allocations/38f8ab42-a7da-4355-85e1-45cc5e72ac2f', 'rel': 'bookmark'}], 'node_uuid': None} POST: /v1/allocations {'candidate_nodes': [], 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '2ff4b6cd-bc95-4d4f-a4c6-772f666c0543', 'owner': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/2ff4b6cd-bc95-4d4f-a4c6-772f666c0543 Openstack-Request-Id: req-e112fd61-4a76-4f58-9632-ce76a5daa51c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "2ff4b6cd-bc95-4d4f-a4c6-772f666c0543", "created_at": "2024-01-06T13:31:27.485958+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/2ff4b6cd-bc95-4d4f-a4c6-772f666c0543", "rel": "self"}, {"href": "http://localhost/allocations/2ff4b6cd-bc95-4d4f-a4c6-772f666c0543", "rel": "bookmark"}], "node_uuid": null} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': ['CUSTOM_GPU', 'CUSTOM_FOO_BAR'], 'uuid': '2f9df262-8e21-486f-af37-722388e0b6d5', 'owner': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/2f9df262-8e21-486f-af37-722388e0b6d5 Openstack-Request-Id: req-c4e85b4b-dfa1-4a28-a902-161d00946539 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "2f9df262-8e21-486f-af37-722388e0b6d5", "created_at": "2024-01-06T13:31:27.840096+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/2f9df262-8e21-486f-af37-722388e0b6d5", "rel": "self"}, {"href": "http://localhost/allocations/2f9df262-8e21-486f-af37-722388e0b6d5", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/2f9df262-8e21-486f-af37-722388e0b6d5 {} GOT:{'uuid': '2f9df262-8e21-486f-af37-722388e0b6d5', 'created_at': '2024-01-06T13:31:27.840096+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/2f9df262-8e21-486f-af37-722388e0b6d5', 'rel': 'self'}, {'href': 'http://localhost/allocations/2f9df262-8e21-486f-af37-722388e0b6d5', 'rel': 'bookmark'}], 'node_uuid': None} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '9581b493-ff3c-4538-ab35-c0c9c382bb59', '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': '3611366a-0d00-48b5-b219-ae576dd466cd', 'owner': None, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4d051627-c009-4a56-a843-99fbbe7f4666 X-Openstack-Ironic-Api-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': '2c451130-a763-43dd-8e9d-eb0aaa8bb6e6', 'owner': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/2c451130-a763-43dd-8e9d-eb0aaa8bb6e6 Openstack-Request-Id: req-f6f78a36-a35c-478d-b596-9d0bab3c2600 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "2c451130-a763-43dd-8e9d-eb0aaa8bb6e6", "created_at": "2024-01-06T13:31:29.003587+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/2c451130-a763-43dd-8e9d-eb0aaa8bb6e6", "rel": "self"}, {"href": "http://localhost/allocations/2c451130-a763-43dd-8e9d-eb0aaa8bb6e6", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/2c451130-a763-43dd-8e9d-eb0aaa8bb6e6 {} 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.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.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.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_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_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_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.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_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_allocation.TestPost.test_create_restricted_allocation_older_version ironic.tests.unit.api.controllers.v1.test_allocation.TestPost.test_create_restricted_allocation_older_version ... ok GOT:{'allocations': [{'uuid': 'ee2ceaff-69e7-491e-ba3a-38a482fdb6da', 'created_at': '2024-01-06T13:31:25.663433+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/ee2ceaff-69e7-491e-ba3a-38a482fdb6da', 'rel': 'self'}, {'href': 'http://localhost/allocations/ee2ceaff-69e7-491e-ba3a-38a482fdb6da', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'a726eba2-c588-48e3-8d11-1c4ea4ec4789', 'created_at': '2024-01-06T13:31:25.672550+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/a726eba2-c588-48e3-8d11-1c4ea4ec4789', 'rel': 'self'}, {'href': 'http://localhost/allocations/a726eba2-c588-48e3-8d11-1c4ea4ec4789', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '66efebb0-0990-47c1-ba5a-a8ddca16ebf0', 'created_at': '2024-01-06T13:31:25.685595+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/66efebb0-0990-47c1-ba5a-a8ddca16ebf0', 'rel': 'self'}, {'href': 'http://localhost/allocations/66efebb0-0990-47c1-ba5a-a8ddca16ebf0', 'rel': 'bookmark'}], 'node_uuid': None}]} GET: /v1/allocations?owner=12345 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2a1a90df-8e43-4842-b54e-977ecac7de0e 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': '729ebe83-09ca-4088-a7a1-d17643076725', 'created_at': '2024-01-06T13:31:26.603751+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/729ebe83-09ca-4088-a7a1-d17643076725', 'rel': 'self'}, {'href': 'http://localhost/allocations/729ebe83-09ca-4088-a7a1-d17643076725', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '4048f43a-73dc-4ac3-b60f-e3663ccea9ee', 'created_at': '2024-01-06T13:31:26.608647+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/4048f43a-73dc-4ac3-b60f-e3663ccea9ee', 'rel': 'self'}, {'href': 'http://localhost/allocations/4048f43a-73dc-4ac3-b60f-e3663ccea9ee', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '688b1132-c820-4e86-8b18-a9bb6d22c458', 'created_at': '2024-01-06T13:31:26.621487+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/688b1132-c820-4e86-8b18-a9bb6d22c458', 'rel': 'self'}, {'href': 'http://localhost/allocations/688b1132-c820-4e86-8b18-a9bb6d22c458', 'rel': 'bookmark'}], 'node_uuid': None}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation {} GOT:{'uuid': '3eb99f14-626e-4219-9003-c33da9e3e762', 'created_at': '2024-01-06T13:31:27.075344+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/3eb99f14-626e-4219-9003-c33da9e3e762', 'rel': 'self'}, {'href': 'http://localhost/allocations/3eb99f14-626e-4219-9003-c33da9e3e762', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/allocation/c73f428f-07bd-4512-a50f-ac480c88da22 {} 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/404b0026-1cc5-48a4-9385-724b46141c0f', 'rel': 'self'}, {'href': 'http://localhost/allocations/404b0026-1cc5-48a4-9385-724b46141c0f', 'rel': 'bookmark'}]} GET: /v1/allocations?fields=uuid,extra {} GOT:{'allocations': [{'uuid': 'c557418f-5ea6-4be0-add5-9919f5bf2b05', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/c557418f-5ea6-4be0-add5-9919f5bf2b05', 'rel': 'self'}, {'href': 'http://localhost/allocations/c557418f-5ea6-4be0-add5-9919f5bf2b05', 'rel': 'bookmark'}]}, {'uuid': '517f673c-e3ec-47bc-b77f-d94aa956807d', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/517f673c-e3ec-47bc-b77f-d94aa956807d', 'rel': 'self'}, {'href': 'http://localhost/allocations/517f673c-e3ec-47bc-b77f-d94aa956807d', 'rel': 'bookmark'}]}, {'uuid': 'fcd7eb32-3369-4c49-96e7-92e13e1a12a3', 'extra': {}, 'links': [{'href': 'http://localhost/v1/allocations/fcd7eb32-3369-4c49-96e7-92e13e1a12a3', 'rel': 'self'}, {'href': 'http://localhost/allocations/fcd7eb32-3369-4c49-96e7-92e13e1a12a3', 'rel': 'bookmark'}]}]} GET: /v1/allocations?fields=node_uuid&limit=2 {} GOT:{'allocations': [{'links': [{'href': 'http://localhost/v1/allocations/8956a660-8fe8-451a-a9e9-0c112d425cae', 'rel': 'self'}, {'href': 'http://localhost/allocations/8956a660-8fe8-451a-a9e9-0c112d425cae', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'links': [{'href': 'http://localhost/v1/allocations/fdf3c82b-4af8-4ed3-a1a8-17752619c8ad', 'rel': 'self'}, {'href': 'http://localhost/allocations/fdf3c82b-4af8-4ed3-a1a8-17752619c8ad', '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=fdf3c82b-4af8-4ed3-a1a8-17752619c8ad'} GET: /v1/allocations/6bff0ca4-4f90-4f43-aebe-ccd55dded7f2?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-69f6ac52-8cfa-4ec3-96ec-f74f19945c98 X-Openstack-Ironic-Api-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/699d74fe-a053-46a0-a3fb-c74c3d9477e0 {} GOT:{'uuid': '699d74fe-a053-46a0-a3fb-c74c3d9477e0', 'created_at': '2024-01-06T13:31:29.282905+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/699d74fe-a053-46a0-a3fb-c74c3d9477e0', 'rel': 'self'}, {'href': 'http://localhost/allocations/699d74fe-a053-46a0-a3fb-c74c3d9477e0', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/allocations/ddeb3797-8885-4f02-b6e2-fb746e419f1b?fields=resource_class,extra {} GOT:{'extra': {}, 'resource_class': 'baremetal', 'links': [{'href': 'http://localhost/v1/allocations/ddeb3797-8885-4f02-b6e2-fb746e419f1b', 'rel': 'self'}, {'href': 'http://localhost/allocations/ddeb3797-8885-4f02-b6e2-fb746e419f1b', 'rel': 'bookmark'}]} GET: /v1/allocations/a4b1af00-25eb-4a16-ace4-1dfd7c63e2fc {} 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_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_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_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_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.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.TestPatch.test_add_root ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_add_root ... 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_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_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.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_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_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_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_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_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.TestListAllocations.test_get_owner_field ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_get_owner_field ... ok GOT:{'uuid': '2c451130-a763-43dd-8e9d-eb0aaa8bb6e6', 'created_at': '2024-01-06T13:31:29.003587+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/2c451130-a763-43dd-8e9d-eb0aaa8bb6e6', 'rel': 'self'}, {'href': 'http://localhost/allocations/2c451130-a763-43dd-8e9d-eb0aaa8bb6e6', 'rel': 'bookmark'}], 'node_uuid': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'fe5f5ac4-4f47-4cdc-bee4-ce782f870537', 'owner': None} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1fccc4b1-3c1d-4dd7-b050-9c241a2e0fee 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': 'bdff96cb-61ba-4943-90a5-6c72746bf45d', 'owner': None} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/bdff96cb-61ba-4943-90a5-6c72746bf45d Openstack-Request-Id: req-5aaa5148-ee9f-45c8-883c-07e70ac74232 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "bdff96cb-61ba-4943-90a5-6c72746bf45d", "created_at": "2024-01-06T13:31:29.667482+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/bdff96cb-61ba-4943-90a5-6c72746bf45d", "rel": "self"}, {"href": "http://localhost/allocations/bdff96cb-61ba-4943-90a5-6c72746bf45d", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/bdff96cb-61ba-4943-90a5-6c72746bf45d {} GOT:{'uuid': 'bdff96cb-61ba-4943-90a5-6c72746bf45d', 'created_at': '2024-01-06T13:31:29.667482+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/bdff96cb-61ba-4943-90a5-6c72746bf45d', 'rel': 'self'}, {'href': 'http://localhost/allocations/bdff96cb-61ba-4943-90a5-6c72746bf45d', 'rel': 'bookmark'}], 'node_uuid': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': 'aca3a57d-0dfa-4e6c-bd6c-d4e2d2d3dba4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/aca3a57d-0dfa-4e6c-bd6c-d4e2d2d3dba4 Openstack-Request-Id: req-73e840a9-070b-4c41-bb54-a0a8e886e159 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.59 {"uuid": "aca3a57d-0dfa-4e6c-bd6c-d4e2d2d3dba4", "created_at": "2024-01-06T13:31:30.032003+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/aca3a57d-0dfa-4e6c-bd6c-d4e2d2d3dba4", "rel": "self"}, {"href": "http://localhost/allocations/aca3a57d-0dfa-4e6c-bd6c-d4e2d2d3dba4", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/aca3a57d-0dfa-4e6c-bd6c-d4e2d2d3dba4 {} GOT:{'uuid': 'aca3a57d-0dfa-4e6c-bd6c-d4e2d2d3dba4', 'created_at': '2024-01-06T13:31:30.032003+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/aca3a57d-0dfa-4e6c-bd6c-d4e2d2d3dba4', 'rel': 'self'}, {'href': 'http://localhost/allocations/aca3a57d-0dfa-4e6c-bd6c-d4e2d2d3dba4', 'rel': 'bookmark'}], 'node_uuid': None} POST: /v1/allocations {'candidate_nodes': [], 'extra': {}, 'name': None, 'resource_class': 'baremetal', 'traits': [], 'uuid': '3bda2aa6-c822-466c-8eb8-8c505ec632e7', 'owner': '54321'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-533de3a4-c168-4bba-859b-eb5c02aa0bed 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': '604ceecd-2982-4503-a0b9-aa0d03ad722a', 'owner': '12345'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/allocations/604ceecd-2982-4503-a0b9-aa0d03ad722a Openstack-Request-Id: req-9e407406-d35a-4268-9543-842dfa87e5d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.60 {"uuid": "604ceecd-2982-4503-a0b9-aa0d03ad722a", "created_at": "2024-01-06T13:31:30.647937+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/604ceecd-2982-4503-a0b9-aa0d03ad722a", "rel": "self"}, {"href": "http://localhost/allocations/604ceecd-2982-4503-a0b9-aa0d03ad722a", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/604ceecd-2982-4503-a0b9-aa0d03ad722a {} GOT:{'uuid': '604ceecd-2982-4503-a0b9-aa0d03ad722a', 'created_at': '2024-01-06T13:31:30.647937+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/604ceecd-2982-4503-a0b9-aa0d03ad722a', 'rel': 'self'}, {'href': 'http://localhost/allocations/604ceecd-2982-4503-a0b9-aa0d03ad722a', 'rel': 'bookmark'}], 'node_uuid': None} GET: /v1/chassis/?limit=3 {} GOT:{'chassis': [{'uuid': '247ae99b-79d4-4170-b9e1-45ee98114dd1', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/247ae99b-79d4-4170-b9e1-45ee98114dd1', 'rel': 'self'}, {'href': 'http://localhost/chassis/247ae99b-79d4-4170-b9e1-45ee98114dd1', 'rel': 'bookmark'}]}, {'uuid': 'ccde7720-79be-44ef-9587-02226b8ab0c0', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/ccde7720-79be-44ef-9587-02226b8ab0c0', 'rel': 'self'}, {'href': 'http://localhost/chassis/ccde7720-79be-44ef-9587-02226b8ab0c0', 'rel': 'bookmark'}]}, {'uuid': '0a48aefc-ae29-471f-b07c-8183f8a849f3', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/0a48aefc-ae29-471f-b07c-8183f8a849f3', 'rel': 'self'}, {'href': 'http://localhost/chassis/0a48aefc-ae29-471f-b07c-8183f8a849f3', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=0a48aefc-ae29-471f-b07c-8183f8a849f3'} GET: /v1/chassis?fields=extra,uuid {} 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_chassis.TestListChassis.test_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_collection_links_default_limit ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7fe6d62e-d9e5-4fd9-ade8-05a544f05141 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "80136b4f-9cb1-4de8-985b-da8b455c7764", "created_at": "2024-01-06T13:31:28.229154+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/80136b4f-9cb1-4de8-985b-da8b455c7764", "rel": "self"}, {"href": "http://localhost/allocations/80136b4f-9cb1-4de8-985b-da8b455c7764", "rel": "bookmark"}], "node_uuid": null} GET: /v1/allocations/80136b4f-9cb1-4de8-985b-da8b455c7764 {} GOT:{'uuid': '80136b4f-9cb1-4de8-985b-da8b455c7764', 'created_at': '2024-01-06T13:31:28.229154+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/80136b4f-9cb1-4de8-985b-da8b455c7764', 'rel': 'self'}, {'href': 'http://localhost/allocations/80136b4f-9cb1-4de8-985b-da8b455c7764', 'rel': 'bookmark'}], 'node_uuid': None} PATCH: /v1/allocations/a062fff3-5e12-4a26-bdd4-adfc483b401c [{'path': '/name', 'value': 'new', 'op': 'replace'}] GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1982082e-44b0-4415-b387-e2ff6899946c X-Openstack-Ironic-Api-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/f5054b6b-a638-4fb0-aa3d-00f3eb82404e [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 405 Method Not Allowed Content-Type: application/json Openstack-Request-Id: req-4fec9d18-3145-47f9-b2c9-9d3626e568cf 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/3fc17ae0-4b7d-461e-9ac2-707957957e0f [{'path': '/name', 'value': 'b', 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4f0fac27-b72f-4f19-9615-aaa637ec94c7 X-Openstack-Ironic-Api-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 3fc17ae0-4b7d-461e-9ac2-707957957e0f could not be found.\", \"debuginfo\": null}"} PATCH: /v1/allocations/4d788333-5d48-4579-9c1a-14df52d73f14 [{'path': '/owner', 'value': '54321', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-19cf7a3a-3041-4efb-9769-b0e78828cc12 X-Openstack-Ironic-Api-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}"} 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-c1446e48-3436-4c71-8862-d3987705bf4b 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-06T13:31:29.979321+00:00", "updated_at": "2024-01-06T13:31:30.075498+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-06T13:31:29.979321+00:00', 'updated_at': '2024-01-06T13:31:30.075498+00:00', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'bar2'}, 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes', 'rel': 'bookmark'}]]} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/description', 'value': 'test', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-afb19584-5628-4668-9382-e8439916f14a 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-06T13:31:30.376618+00:00", "updated_at": "2024-01-06T13:31:30.457304+00:00", "description": "test", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-da5c5043-37e2-4a14-9384-7cbeb118a049 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-32d0a42c-2afa-4086-ae6f-d616eab9e8cd X-Openstack-Ironic-Api-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/f52a32bc-c092-4ab5-ada2-dc9c2d37b855 [{'path': '/extra/foo2', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5e5ccaaf-bd05-4168-9f95-2349493c3535 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "f52a32bc-c092-4ab5-ada2-dc9c2d37b855", "created_at": "2024-01-06T13:31:31.393041+00:00", "updated_at": "2024-01-06T13:31:31.474466+00:00", "description": "foobar", "extra": {"foo1": "bar1", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855", "rel": "self"}, {"href": "http://localhost/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855/nodes", "rel": "self"}, {"href": "http://localhost/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855/nodes", "rel": "bookmark"}]]} GET: /v1/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855 {} 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 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-70a8a413-d689-4921-91ba-1410bbe5724b X-Openstack-Ironic-Api-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/03e9c892-9178-4b3b-bd9e-72f7afd59e0f [{'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-253c35d0-bec9-419c-8d20-26924ac7b0b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "03e9c892-9178-4b3b-bd9e-72f7afd59e0f", "created_at": "2024-01-06T13:31:27.937879+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/03e9c892-9178-4b3b-bd9e-72f7afd59e0f", "rel": "self"}, {"href": "http://localhost/deploy_templates/03e9c892-9178-4b3b-bd9e-72f7afd59e0f", "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/ba44475a-a6be-43c5-b23c-fe3f0984d4f5 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-a92de3b7-2323-4288-b0ea-bdeb57b4429e X-Openstack-Ironic-Api-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 ba44475a-a6be-43c5-b23c-fe3f0984d4f5 already exists.\", \"debuginfo\": null}"} PATCH: /v1/deploy_templates/977f9ba5-5957-4888-bc25-556b6bd0c162 [{'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-9d518eeb-1c82-4cc2-a12c-5ea6c6469c45 X-Openstack-Ironic-Api-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/6af260a4-2552-4db9-83b7-e7b2b83af1a8 [{'path': '/steps/0/interface', 'op': 'replace', 'value': 'foo'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1c611deb-d0f6-4fe7-982c-cc8808e00945 X-Openstack-Ironic-Api-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/4243fab8-edb9-450e-9502-a79eda57f78e [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-02d5b6bf-0e07-479a-9d4e-e505aa76ca61 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "4243fab8-edb9-450e-9502-a79eda57f78e", "created_at": "2024-01-06T13:31:29.377748+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/4243fab8-edb9-450e-9502-a79eda57f78e", "rel": "self"}, {"href": "http://localhost/deploy_templates/4243fab8-edb9-450e-9502-a79eda57f78e", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} PATCH: /v1/deploy_templates/da6a4623-d4e7-4f34-81b2-28cb02035676 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 405 Method Not Allowed Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"The API version does not allow deploy templates\"}"} PATCH: /v1/deploy_templates/CUSTOM_DT1 [{'path': '/steps', 'value': [{'interface': 'bios', 'step': 'apply_configuration', 'args': {'foo': 'bar'}, 'priority': 42}], 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dedb12d5-bcd1-485b-b485-d2c0693349fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "9f050356-4430-4b96-aa2b-83d8e71c8ec2", "created_at": "2024-01-06T13:31:29.998415+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9f050356-4430-4b96-aa2b-83d8e71c8ec2", "rel": "self"}, {"href": "http://localhost/deploy_templates/9f050356-4430-4b96-aa2b-83d8e71c8ec2", "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-64b93add-67f3-4fa5-9c4f-1b711c23aabe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "e9411f9f-62d7-4ece-bf28-082a650ebc08", "created_at": "2024-01-06T13:31:30.654350+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e9411f9f-62d7-4ece-bf28-082a650ebc08", "rel": "self"}, {"href": "http://localhost/deploy_templates/e9411f9f-62d7-4ece-bf28-082a650ebc08", "rel": "bookmark"}], "steps": [{"interface": "bios", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} PATCH: /v1/deploy_templates/8d27bf2a-c89e-4f08-8c04-35000125da5b [{'path': '/name', 'value': 'aa:bb_cc', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7c9c68e5-9109-4f50-ad4b-4c7bb6c37042 X-Openstack-Ironic-Api-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/00a369ce-577b-4efe-8281-4bec1ac6a578 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'replace'}] ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPatch.test_update_name_custom_trait ... ok ironic.tests.unit.api.controllers.v1.test_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_allocation.TestListAllocations.test_links ironic.tests.unit.api.controllers.v1.test_allocation.TestListAllocations.test_links ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.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_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_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.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.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_detail_query ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_query ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid ironic.tests.unit.api.controllers.v1.test_chassis.TestPatch.test_remove_uuid ... ok ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events ... 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_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_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_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_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_event.TestPostRBAC.test_events_invalid_event ironic.tests.unit.api.controllers.v1.test_event.TestPostRBAC.test_events_invalid_event ... ok GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} GET: /v1/allocations/ba!na!na! {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"The API version does not allow allocations\"}"} GET: /v1/allocations/c1457e37-c7c4-40e6-bb5c-21e3c1e2bb4e.json {} GOT:{'uuid': 'c1457e37-c7c4-40e6-bb5c-21e3c1e2bb4e', 'created_at': '2024-01-06T13:31:30.527396+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/c1457e37-c7c4-40e6-bb5c-21e3c1e2bb4e', 'rel': 'self'}, {'href': 'http://localhost/allocations/c1457e37-c7c4-40e6-bb5c-21e3c1e2bb4e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/allocations/7f90db4d-e5c1-4475-9dcc-6fa71cab8ec6 {} GOT:{'uuid': '7f90db4d-e5c1-4475-9dcc-6fa71cab8ec6', 'created_at': '2024-01-06T13:31:30.770460+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/7f90db4d-e5c1-4475-9dcc-6fa71cab8ec6', 'rel': 'self'}, {'href': 'http://localhost/allocations/7f90db4d-e5c1-4475-9dcc-6fa71cab8ec6', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/allocations/dd72db24-3800-4eb6-a5e4-2b30cf7ec3b0 {} GOT:{'uuid': 'dd72db24-3800-4eb6-a5e4-2b30cf7ec3b0', 'created_at': '2024-01-06T13:31:31.209541+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/dd72db24-3800-4eb6-a5e4-2b30cf7ec3b0', 'rel': 'self'}, {'href': 'http://localhost/allocations/dd72db24-3800-4eb6-a5e4-2b30cf7ec3b0', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/allocations/6bc14200-ca70-4d69-ade3-d455c2b8d676?fields=owner {} GOT:{'owner': '12345', 'links': [{'href': 'http://localhost/v1/allocations/6bc14200-ca70-4d69-ade3-d455c2b8d676', 'rel': 'self'}, {'href': 'http://localhost/allocations/6bc14200-ca70-4d69-ade3-d455c2b8d676', 'rel': 'bookmark'}]} GET: /v1/allocations/1d0b97ff-5655-4479-a22f-181c40c538b0 {} GOT:{'uuid': '1d0b97ff-5655-4479-a22f-181c40c538b0', 'created_at': '2024-01-06T13:31:31.827854+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/1d0b97ff-5655-4479-a22f-181c40c538b0', 'rel': 'self'}, {'href': 'http://localhost/allocations/1d0b97ff-5655-4479-a22f-181c40c538b0', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/allocations/1d0b97ff-5655-4479-a22f-181c40c538b0 {} GOT:{'uuid': '1d0b97ff-5655-4479-a22f-181c40c538b0', 'created_at': '2024-01-06T13:31:31.827854+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/1d0b97ff-5655-4479-a22f-181c40c538b0', 'rel': 'self'}, {'href': 'http://localhost/allocations/1d0b97ff-5655-4479-a22f-181c40c538b0', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /allocations/1d0b97ff-5655-4479-a22f-181c40c538b0 {} GOT:{'uuid': '1d0b97ff-5655-4479-a22f-181c40c538b0', 'created_at': '2024-01-06T13:31:31.827854+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/1d0b97ff-5655-4479-a22f-181c40c538b0', 'rel': 'self'}, {'href': 'http://localhost/allocations/1d0b97ff-5655-4479-a22f-181c40c538b0', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/allocations {} GOT:{'allocations': [{'uuid': 'd48e2d90-e623-4f85-b999-10673538cc57', 'created_at': '2024-01-06T13:31:32.384940+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/d48e2d90-e623-4f85-b999-10673538cc57', 'rel': 'self'}, {'href': 'http://localhost/allocations/d48e2d90-e623-4f85-b999-10673538cc57', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '30806cd9-cadd-43c9-9a8b-28b61b2c2a78', 'created_at': '2024-01-06T13:31:32.397841+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/30806cd9-cadd-43c9-9a8b-28b61b2c2a78', 'rel': 'self'}, {'href': 'http://localhost/allocations/30806cd9-cadd-43c9-9a8b-28b61b2c2a78', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '23f7414f-b3de-4682-bed9-08927a0b0807', 'created_at': '2024-01-06T13:31:32.411038+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/23f7414f-b3de-4682-bed9-08927a0b0807', 'rel': 'self'}, {'href': 'http://localhost/allocations/23f7414f-b3de-4682-bed9-08927a0b0807', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '89434b3e-467a-4cb0-a983-fcb576dee30d', 'created_at': '2024-01-06T13:31:32.420019+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/89434b3e-467a-4cb0-a983-fcb576dee30d', 'rel': 'self'}, {'href': 'http://localhost/allocations/89434b3e-467a-4cb0-a983-fcb576dee30d', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'b13a2a4f-ba34-4beb-be20-ad8d365be5b0', 'created_at': '2024-01-06T13:31:32.428939+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/b13a2a4f-ba34-4beb-be20-ad8d365be5b0', 'rel': 'self'}, {'href': 'http://localhost/allocations/b13a2a4f-ba34-4beb-be20-ad8d365be5b0', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} GET: /v1/allocations {} GOT:{'allocations': [{'uuid': '389ff4a2-75cc-4d9a-9962-3863b34889d4', 'created_at': '2024-01-06T13:31:32.817857+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/389ff4a2-75cc-4d9a-9962-3863b34889d4', 'rel': 'self'}, {'href': 'http://localhost/allocations/389ff4a2-75cc-4d9a-9962-3863b34889d4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} GET: /v1/allocations?sort_key=uuid {} 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_chassis.TestListChassis.test_detail_using_query_false_and_fields ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_detail_using_query_false_and_fields ... ok GOT:{'uuid': 'f52a32bc-c092-4ab5-ada2-dc9c2d37b855', 'created_at': '2024-01-06T13:31:31.393041+00:00', 'updated_at': '2024-01-06T13:31:31.474466+00:00', 'description': 'foobar', 'extra': {'foo1': 'bar1', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855', 'rel': 'self'}, {'href': 'http://localhost/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855/nodes', 'rel': 'bookmark'}]]} PATCH: /v1/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-48702b36-5dbd-4672-aac3-8bd6b4fa3066 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "f52a32bc-c092-4ab5-ada2-dc9c2d37b855", "created_at": "2024-01-06T13:31:31.393041+00:00", "updated_at": "2024-01-06T13:31:31.616705+00:00", "description": "foobar", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855", "rel": "self"}, {"href": "http://localhost/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855/nodes", "rel": "self"}, {"href": "http://localhost/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855/nodes", "rel": "bookmark"}]]} GET: /v1/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855 {} GOT:{'uuid': 'f52a32bc-c092-4ab5-ada2-dc9c2d37b855', 'created_at': '2024-01-06T13:31:31.393041+00:00', 'updated_at': '2024-01-06T13:31:31.616705+00:00', 'description': 'foobar', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855', 'rel': 'self'}, {'href': 'http://localhost/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/f52a32bc-c092-4ab5-ada2-dc9c2d37b855/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-38b31640-c2b8-4e5e-ae59-fd0e34c9d85f X-Openstack-Ironic-Api-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/2bc6c4c7-74d0-41a8-9bf7-49fa669867fb [{'path': '/description', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0aa08b5c-c5ed-4313-93d4-d5d5b56df2a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "2bc6c4c7-74d0-41a8-9bf7-49fa669867fb", "created_at": "2024-01-06T13:31:32.331105+00:00", "updated_at": "2024-01-06T13:31:32.416752+00:00", "description": null, "extra": {"a": "b"}, "links": [{"href": "http://localhost/v1/chassis/2bc6c4c7-74d0-41a8-9bf7-49fa669867fb", "rel": "self"}, {"href": "http://localhost/chassis/2bc6c4c7-74d0-41a8-9bf7-49fa669867fb", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/2bc6c4c7-74d0-41a8-9bf7-49fa669867fb/nodes", "rel": "self"}, {"href": "http://localhost/chassis/2bc6c4c7-74d0-41a8-9bf7-49fa669867fb/nodes", "rel": "bookmark"}]]} GET: /v1/chassis/2bc6c4c7-74d0-41a8-9bf7-49fa669867fb {} GOT:{'uuid': '2bc6c4c7-74d0-41a8-9bf7-49fa669867fb', 'created_at': '2024-01-06T13:31:32.331105+00:00', 'updated_at': '2024-01-06T13:31:32.416752+00:00', 'description': None, 'extra': {'a': 'b'}, 'links': [{'href': 'http://localhost/v1/chassis/2bc6c4c7-74d0-41a8-9bf7-49fa669867fb', 'rel': 'self'}, {'href': 'http://localhost/chassis/2bc6c4c7-74d0-41a8-9bf7-49fa669867fb', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/2bc6c4c7-74d0-41a8-9bf7-49fa669867fb/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/2bc6c4c7-74d0-41a8-9bf7-49fa669867fb/nodes', 'rel': 'bookmark'}]]} PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'path': '/uuid', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-08e8f0b7-6757-4dfb-ae03-9fdd0735061a X-Openstack-Ironic-Api-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/0dd3d45d-fbb2-40b3-b4b9-6c44b2b3e54e [{'path': '/extra/foo2', 'value': 'new value', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e1383314-b9ce-4de4-9da3-689150a49557 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "0dd3d45d-fbb2-40b3-b4b9-6c44b2b3e54e", "created_at": "2024-01-06T13:31:32.873259+00:00", "updated_at": "2024-01-06T13:31:32.964899+00:00", "description": "data-center-1-chassis", "extra": {"foo1": "bar1", "foo2": "new value", "foo3": "bar3"}, "links": [{"href": "http://localhost/v1/chassis/0dd3d45d-fbb2-40b3-b4b9-6c44b2b3e54e", "rel": "self"}, {"href": "http://localhost/chassis/0dd3d45d-fbb2-40b3-b4b9-6c44b2b3e54e", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/0dd3d45d-fbb2-40b3-b4b9-6c44b2b3e54e/nodes", "rel": "self"}, {"href": "http://localhost/chassis/0dd3d45d-fbb2-40b3-b4b9-6c44b2b3e54e/nodes", "rel": "bookmark"}]]} GET: /v1/chassis/0dd3d45d-fbb2-40b3-b4b9-6c44b2b3e54e {} GOT:{'uuid': '0dd3d45d-fbb2-40b3-b4b9-6c44b2b3e54e', 'created_at': '2024-01-06T13:31:32.873259+00:00', 'updated_at': '2024-01-06T13:31:32.964899+00:00', 'description': 'data-center-1-chassis', 'extra': {'foo1': 'bar1', 'foo2': 'new value', 'foo3': 'bar3'}, 'links': [{'href': 'http://localhost/v1/chassis/0dd3d45d-fbb2-40b3-b4b9-6c44b2b3e54e', 'rel': 'self'}, {'href': 'http://localhost/chassis/0dd3d45d-fbb2-40b3-b4b9-6c44b2b3e54e', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/0dd3d45d-fbb2-40b3-b4b9-6c44b2b3e54e/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/0dd3d45d-fbb2-40b3-b4b9-6c44b2b3e54e/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-553d8d6f-325e-4102-bdda-634b0692699e 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-06T13:31:33.276993+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 {} 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_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_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_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_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_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_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_chassis.TestListChassis.test_empty ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_empty ... 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_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_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_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_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_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_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_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_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_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 GOT:{'allocations': [{'uuid': '31889b4c-cccc-4154-a016-ebf414243c6b', 'created_at': '2024-01-06T13:31:33.292416+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/31889b4c-cccc-4154-a016-ebf414243c6b', 'rel': 'self'}, {'href': 'http://localhost/allocations/31889b4c-cccc-4154-a016-ebf414243c6b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'a34c1d62-72b2-4dd9-9d32-41d5036a504b', 'created_at': '2024-01-06T13:31:33.275094+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/a34c1d62-72b2-4dd9-9d32-41d5036a504b', 'rel': 'self'}, {'href': 'http://localhost/allocations/a34c1d62-72b2-4dd9-9d32-41d5036a504b', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'f9d80ac5-4cfa-4fa0-b830-e7128f286dda', 'created_at': '2024-01-06T13:31:33.279803+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/f9d80ac5-4cfa-4fa0-b830-e7128f286dda', 'rel': 'self'}, {'href': 'http://localhost/allocations/f9d80ac5-4cfa-4fa0-b830-e7128f286dda', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} GET: /v1/allocations?sort_key=name {} GOT:{'allocations': [{'uuid': '4e5650a8-bba1-444c-a3b4-fbc238b09fc1', 'created_at': '2024-01-06T13:31:33.694006+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/4e5650a8-bba1-444c-a3b4-fbc238b09fc1', 'rel': 'self'}, {'href': 'http://localhost/allocations/4e5650a8-bba1-444c-a3b4-fbc238b09fc1', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': 'acae2723-8734-4605-b79e-b7640f2f0c09', 'created_at': '2024-01-06T13:31:33.685270+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/acae2723-8734-4605-b79e-b7640f2f0c09', 'rel': 'self'}, {'href': 'http://localhost/allocations/acae2723-8734-4605-b79e-b7640f2f0c09', 'rel': 'bookmark'}], 'node_uuid': None}, {'uuid': '3abfd4f0-ed80-4200-aaf7-c5a3fc8caf91', 'created_at': '2024-01-06T13:31:33.676248+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/3abfd4f0-ed80-4200-aaf7-c5a3fc8caf91', 'rel': 'self'}, {'href': 'http://localhost/allocations/3abfd4f0-ed80-4200-aaf7-c5a3fc8caf91', 'rel': 'bookmark'}], 'node_uuid': None}]} GET: /v1/allocations?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-758aa233-b25b-42cc-a859-b4a22d58aff0 X-Openstack-Ironic-Api-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 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-689ba489-bb06-418e-a787-5294b91665f4 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1eab8d4e-9249-4aec-a546-9baf2eb09a60 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"internal_info\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/allocations?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9e52fabd-b148-465c-87aa-720c3e5a5e0f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"properties\\\" is an invalid field for sorting\", \"debuginfo\": null}"} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'data-center-1-chassis'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-f8083d59-5389-43bb-ae80-8d2536e60dbb 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-3fae0f05-0604-4ff0-94f1-c06da9d3409a 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-06T13:31:34.962046+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {"foo": 123}, "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes", "rel": "bookmark"}]]} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} ironic.tests.unit.api.controllers.v1.test_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.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_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_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_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_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_chassis.TestPost.test_create_chassis_generate_uuid ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_generate_uuid ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-88672ab7-ce7a-4c7b-a30f-3fc0d0ced461 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "00a369ce-577b-4efe-8281-4bec1ac6a578", "created_at": "2024-01-06T13:31:31.517716+00:00", "updated_at": null, "name": "CUSTOM_DT2", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/00a369ce-577b-4efe-8281-4bec1ac6a578", "rel": "self"}, {"href": "http://localhost/deploy_templates/00a369ce-577b-4efe-8281-4bec1ac6a578", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} PATCH: /v1/deploy_templates/5b2503fe-8a9c-4fb9-9a83-7114a8f1be6b [{'path': '/name', 'value': 'HW_CPU_X86_VMX', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-79ef5823-8e73-44c4-bd14-02aea5f75681 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5b2503fe-8a9c-4fb9-9a83-7114a8f1be6b", "created_at": "2024-01-06T13:31:32.030307+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/5b2503fe-8a9c-4fb9-9a83-7114a8f1be6b", "rel": "self"}, {"href": "http://localhost/deploy_templates/5b2503fe-8a9c-4fb9-9a83-7114a8f1be6b", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} PATCH: /v1/deploy_templates/f7d522d4-f332-406c-95b9-29a883218f65 [{'path': '/name', 'value': 'CUSTOM_DT2', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4991f568-dc35-4860-8c52-058796ad9a1b X-Openstack-Ironic-Api-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 f7d522d4-f332-406c-95b9-29a883218f65 could not be found.\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'network.bind_port', 'port_id': '11111111-aaaa-bbbb-cccc-555555555555', 'mac_address': 'de:ad:ca:fe:ba:be', 'status': 'ACTIVE', 'device_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:host_id': '22222222-aaaa-bbbb-cccc-555555555555', 'binding:vnic_type': 'baremetal'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-7750d943-052a-41fe-88f8-fda6fed8e46c 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-741cd5e7-5b3a-4ff9-8cd9-1c13d004074b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'invalid.event'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d4d055b8-02e9-4be1-82a0-b6a340476f53 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-fc8618d9-b14b-4dd3-a610-a237c69f57b4 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-4ff9905e-d4be-4ed9-a17b-ba84b1ea158d 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-149629d9-6a12-48cb-bcce-d5e1fa11decb 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'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-136cb942-b615-46ae-bdac-cc60b0442999 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 Content-Type: application/json Openstack-Request-Id: req-de0097da-0ef3-4729-b378-e4219054f135 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-51145cae-1dd0-4a9f-947c-e00377a99b44 X-Openstack-Ironic-Api-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}"} 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_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_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_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 GOT:{'chassis': [{'uuid': '6ab386cf-c55b-4668-9851-856eadbdae9e', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/6ab386cf-c55b-4668-9851-856eadbdae9e', 'rel': 'self'}, {'href': 'http://localhost/chassis/6ab386cf-c55b-4668-9851-856eadbdae9e', 'rel': 'bookmark'}]}, {'uuid': '706af69f-050f-4135-80b7-3203f6dc39a3', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/706af69f-050f-4135-80b7-3203f6dc39a3', 'rel': 'self'}, {'href': 'http://localhost/chassis/706af69f-050f-4135-80b7-3203f6dc39a3', 'rel': 'bookmark'}]}, {'uuid': 'ebc3acb3-f76f-44a6-b6a1-4c4a4d4adf86', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/ebc3acb3-f76f-44a6-b6a1-4c4a4d4adf86', 'rel': 'self'}, {'href': 'http://localhost/chassis/ebc3acb3-f76f-44a6-b6a1-4c4a4d4adf86', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra,uuid&limit=3&marker=ebc3acb3-f76f-44a6-b6a1-4c4a4d4adf86'} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': '783bc216-3fe8-439f-a53f-3fba2294bac3', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/783bc216-3fe8-439f-a53f-3fba2294bac3', 'rel': 'self'}, {'href': 'http://localhost/chassis/783bc216-3fe8-439f-a53f-3fba2294bac3', 'rel': 'bookmark'}]}, {'uuid': '00218fa8-5616-46ad-88cc-6d8e6d9c1591', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/00218fa8-5616-46ad-88cc-6d8e6d9c1591', 'rel': 'self'}, {'href': 'http://localhost/chassis/00218fa8-5616-46ad-88cc-6d8e6d9c1591', 'rel': 'bookmark'}]}, {'uuid': 'c87e22f4-a6ed-409d-aa16-e7fde5b447c6', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/c87e22f4-a6ed-409d-aa16-e7fde5b447c6', 'rel': 'self'}, {'href': 'http://localhost/chassis/c87e22f4-a6ed-409d-aa16-e7fde5b447c6', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=uuid,description&limit=3&marker=c87e22f4-a6ed-409d-aa16-e7fde5b447c6'} GET: /v1/chassis/detail {} GOT:{'chassis': [{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2024-01-06T13:31:32.104830+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-349956e2-ea6a-4034-801b-3c07cba6c12d X-Openstack-Ironic-Api-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-06T13:31:32.580897+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-b567f878-b177-43a5-929b-837df9249eaa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} GET: /v1/chassis?detail=False&fields=description {} GOT:{'chassis': [{'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'self'}, {'href': 'http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66', 'rel': 'bookmark'}]}]} GET: /v1/chassis?detail=True {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-70f191a0-2d7a-4682-9f7f-e236d0f243f6 X-Openstack-Ironic-Api-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': 'c3e0061d-0639-47c7-88bf-e2812d9dbc67', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/c3e0061d-0639-47c7-88bf-e2812d9dbc67', 'rel': 'self'}, {'href': 'http://localhost/chassis/c3e0061d-0639-47c7-88bf-e2812d9dbc67', 'rel': 'bookmark'}]}, {'uuid': '185b494f-6af6-4391-8552-55909a0cab15', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/185b494f-6af6-4391-8552-55909a0cab15', 'rel': 'self'}, {'href': 'http://localhost/chassis/185b494f-6af6-4391-8552-55909a0cab15', 'rel': 'bookmark'}]}, {'uuid': '78679a0b-0a26-4b66-88f4-a52c5e496764', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/78679a0b-0a26-4b66-88f4-a52c5e496764', 'rel': 'self'}, {'href': 'http://localhost/chassis/78679a0b-0a26-4b66-88f4-a52c5e496764', 'rel': 'bookmark'}]}]} GET: /v1/chassis?fields=extra&limit=2 {} GOT:{'chassis': [{'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/e0245b50-f0b9-4017-885f-e3df2d627c64', 'rel': 'self'}, {'href': 'http://localhost/chassis/e0245b50-f0b9-4017-885f-e3df2d627c64', 'rel': 'bookmark'}]}, {'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/b216b981-b28c-45ed-818d-3ef0f8e44dbc', 'rel': 'self'}, {'href': 'http://localhost/chassis/b216b981-b28c-45ed-818d-3ef0f8e44dbc', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/chassis?sort_key=id&sort_dir=asc&fields=extra&limit=2&marker=b216b981-b28c-45ed-818d-3ef0f8e44dbc'} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2573c4cf-dc8f-4281-b88a-a2ceaba4d5a1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d4293bc9-7234-4107-a4a3-917256012d58 X-Openstack-Ironic-Api-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 {} 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_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_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_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_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_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_chassis.TestListChassis.test_links ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links ... ok ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra ironic.tests.unit.api.controllers.v1.test_chassis.TestPost.test_create_chassis_valid_extra ... ok ironic.tests.unit.api.controllers.v1.test_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_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_chassis.TestListChassis.test_links_public_url ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_links_public_url ... ok GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2024-01-06T13:31:33.276993+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-df09309e-e9a4-45d0-99e1-086a1541933a X-Openstack-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/39a8482d-300d-40f4-a967-ddfc6cdf1a58 [{'path': '/extra/a', 'value': 'b', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8f245997-c747-49cd-86e3-5e75ac74c5de X-Openstack-Ironic-Api-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 39a8482d-300d-40f4-a967-ddfc6cdf1a58 could not be found.\", \"debuginfo\": null}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '58ee4066-8d9d-4ed3-88ad-121f145a9683', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/58ee4066-8d9d-4ed3-88ad-121f145a9683 Openstack-Request-Id: req-d8235411-4f17-45a0-a288-044f4a80c6e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "58ee4066-8d9d-4ed3-88ad-121f145a9683", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/58ee4066-8d9d-4ed3-88ad-121f145a9683", "rel": "self"}, {"href": "http://localhost/deploy_templates/58ee4066-8d9d-4ed3-88ad-121f145a9683", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET: /v1/deploy_templates/58ee4066-8d9d-4ed3-88ad-121f145a9683 {} GOT:{'uuid': '58ee4066-8d9d-4ed3-88ad-121f145a9683', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/58ee4066-8d9d-4ed3-88ad-121f145a9683', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/58ee4066-8d9d-4ed3-88ad-121f145a9683', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '87b674fe-d309-489c-bbf2-483b54f50594', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'foo': [{'bar': 'baz'}]}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/87b674fe-d309-489c-bbf2-483b54f50594 Openstack-Request-Id: req-7af0a66c-3026-49d3-9eab-440fde93939a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "87b674fe-d309-489c-bbf2-483b54f50594", "created_at": "2024-01-06T13:31:35.351505+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/87b674fe-d309-489c-bbf2-483b54f50594", "rel": "self"}, {"href": "http://localhost/deploy_templates/87b674fe-d309-489c-bbf2-483b54f50594", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"foo": [{"bar": "baz"}]}, "priority": 10}]} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '6b682d29-c6df-4fb9-b68f-b59f6dcfe8eb', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/6b682d29-c6df-4fb9-b68f-b59f6dcfe8eb Openstack-Request-Id: req-10792489-132d-40d1-96f3-78c22db5b910 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "6b682d29-c6df-4fb9-b68f-b59f6dcfe8eb", "created_at": "2024-01-06T13:31:35.721273+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/6b682d29-c6df-4fb9-b68f-b59f6dcfe8eb", "rel": "self"}, {"href": "http://localhost/deploy_templates/6b682d29-c6df-4fb9-b68f-b59f6dcfe8eb", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET: /v1/deploy_templates/6b682d29-c6df-4fb9-b68f-b59f6dcfe8eb {} GOT:{'uuid': '6b682d29-c6df-4fb9-b68f-b59f6dcfe8eb', 'created_at': '2024-01-06T13:31:35.721273+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/6b682d29-c6df-4fb9-b68f-b59f6dcfe8eb', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/6b682d29-c6df-4fb9-b68f-b59f6dcfe8eb', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '70deeab1-e47f-49a9-9c04-9e86d50a5a52', '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-391c3e9e-ca8f-482c-bfb1-bb65e6ddba68 X-Openstack-Ironic-Api-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 Content-Type: application/json Location: http://localhost/v1/deploy_templates/05c63a98-1a4a-46ab-870a-bc6983405bdd Openstack-Request-Id: req-8eb077ff-0fa4-46a3-a418-f3bd32d7b53c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "05c63a98-1a4a-46ab-870a-bc6983405bdd", "created_at": "2024-01-06T13:31:36.736502+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/05c63a98-1a4a-46ab-870a-bc6983405bdd", "rel": "self"}, {"href": "http://localhost/deploy_templates/05c63a98-1a4a-46ab-870a-bc6983405bdd", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} GET: /v1/deploy_templates/05c63a98-1a4a-46ab-870a-bc6983405bdd {} GOT:{'uuid': '05c63a98-1a4a-46ab-870a-bc6983405bdd', 'created_at': '2024-01-06T13:31:36.736502+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/05c63a98-1a4a-46ab-870a-bc6983405bdd', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/05c63a98-1a4a-46ab-870a-bc6983405bdd', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '476edf1b-8da3-4175-9543-e080400db92c', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} 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_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_chassis.TestListChassis.test_many ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_many ... 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_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.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_invalid_field_extra ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_field_extra ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach ... 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_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_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_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_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_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.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_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.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_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': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2024-01-06T13:31:35.821100+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/c9c8844c-784e-40c6-85e7-32cb1f57976c {} GOT:{'uuid': 'c9c8844c-784e-40c6-85e7-32cb1f57976c', 'created_at': '2024-01-06T13:31:36.569362+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/c9c8844c-784e-40c6-85e7-32cb1f57976c', 'rel': 'self'}, {'href': 'http://localhost/chassis/c9c8844c-784e-40c6-85e7-32cb1f57976c', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/c9c8844c-784e-40c6-85e7-32cb1f57976c/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/c9c8844c-784e-40c6-85e7-32cb1f57976c/nodes', 'rel': 'bookmark'}]]} GET: /v1/chassis/c9c8844c-784e-40c6-85e7-32cb1f57976c {} GOT:{'uuid': 'c9c8844c-784e-40c6-85e7-32cb1f57976c', 'created_at': '2024-01-06T13:31:36.569362+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/c9c8844c-784e-40c6-85e7-32cb1f57976c', 'rel': 'self'}, {'href': 'http://localhost/chassis/c9c8844c-784e-40c6-85e7-32cb1f57976c', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/c9c8844c-784e-40c6-85e7-32cb1f57976c/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/c9c8844c-784e-40c6-85e7-32cb1f57976c/nodes', 'rel': 'bookmark'}]]} GET: /chassis/c9c8844c-784e-40c6-85e7-32cb1f57976c {} GOT:{'uuid': 'c9c8844c-784e-40c6-85e7-32cb1f57976c', 'created_at': '2024-01-06T13:31:36.569362+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://localhost/v1/chassis/c9c8844c-784e-40c6-85e7-32cb1f57976c', 'rel': 'self'}, {'href': 'http://localhost/chassis/c9c8844c-784e-40c6-85e7-32cb1f57976c', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://localhost/v1/chassis/c9c8844c-784e-40c6-85e7-32cb1f57976c/nodes', 'rel': 'self'}, {'href': 'http://localhost/chassis/c9c8844c-784e-40c6-85e7-32cb1f57976c/nodes', 'rel': 'bookmark'}]]} GET: /v1/chassis/04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd {} GOT:{'uuid': '04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd', 'created_at': '2024-01-06T13:31:36.992878+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd', 'rel': 'self'}, {'href': 'http://foo/chassis/04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://foo/v1/chassis/04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd/nodes', 'rel': 'bookmark'}]]} GET: /v1/chassis/04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd {} GOT:{'uuid': '04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd', 'created_at': '2024-01-06T13:31:36.992878+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd', 'rel': 'self'}, {'href': 'http://foo/chassis/04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://foo/v1/chassis/04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd/nodes', 'rel': 'bookmark'}]]} GET: /chassis/04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd {} GOT:{'uuid': '04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd', 'created_at': '2024-01-06T13:31:36.992878+00:00', 'updated_at': None, 'description': 'data-center-1-chassis', 'extra': {}, 'links': [{'href': 'http://foo/v1/chassis/04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd', 'rel': 'self'}, {'href': 'http://foo/chassis/04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd', 'rel': 'bookmark'}], 'nodes': [[{'href': 'http://foo/v1/chassis/04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd/nodes', 'rel': 'self'}, {'href': 'http://foo/chassis/04a38809-6ded-4c7e-8f9e-dcc7f45f1bcd/nodes', 'rel': 'bookmark'}]]} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': '284a3392-36bb-4f69-9542-65fa48fef3d4', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/284a3392-36bb-4f69-9542-65fa48fef3d4', 'rel': 'self'}, {'href': 'http://localhost/chassis/284a3392-36bb-4f69-9542-65fa48fef3d4', 'rel': 'bookmark'}]}, {'uuid': '8e005a0f-b186-4d3f-be95-ad2adc6932f9', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/8e005a0f-b186-4d3f-be95-ad2adc6932f9', 'rel': 'self'}, {'href': 'http://localhost/chassis/8e005a0f-b186-4d3f-be95-ad2adc6932f9', 'rel': 'bookmark'}]}, {'uuid': 'c2d7da96-fbd2-4ef4-a9de-1fbfbcc4bdb2', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/c2d7da96-fbd2-4ef4-a9de-1fbfbcc4bdb2', 'rel': 'self'}, {'href': 'http://localhost/chassis/c2d7da96-fbd2-4ef4-a9de-1fbfbcc4bdb2', 'rel': 'bookmark'}]}, {'uuid': 'b4a7bac1-57e6-4ed3-8f27-3c8b8d8e2daf', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/b4a7bac1-57e6-4ed3-8f27-3c8b8d8e2daf', 'rel': 'self'}, {'href': 'http://localhost/chassis/b4a7bac1-57e6-4ed3-8f27-3c8b8d8e2daf', 'rel': 'bookmark'}]}, {'uuid': 'c4fee6df-cdda-4af0-a9cf-637d5fddb0b7', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/c4fee6df-cdda-4af0-a9cf-637d5fddb0b7', 'rel': 'self'}, {'href': 'http://localhost/chassis/c4fee6df-cdda-4af0-a9cf-637d5fddb0b7', 'rel': 'bookmark'}]}]} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes {} GOT:{'nodes': [{'uuid': '46d250a2-ce8d-44cf-81b5-70e0704651ca', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/46d250a2-ce8d-44cf-81b5-70e0704651ca', 'rel': 'self'}, {'href': 'http://localhost/nodes/46d250a2-ce8d-44cf-81b5-70e0704651ca', 'rel': 'bookmark'}]}, {'uuid': '94225e3e-f2b1-4fcd-90fd-d1953ad41ad2', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/94225e3e-f2b1-4fcd-90fd-d1953ad41ad2', 'rel': 'self'}, {'href': 'http://localhost/nodes/94225e3e-f2b1-4fcd-90fd-d1953ad41ad2', 'rel': 'bookmark'}]}]} GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66/nodes?limit=1 {} GOT:{'nodes': [{'uuid': '46d250a2-ce8d-44cf-81b5-70e0704651ca', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/46d250a2-ce8d-44cf-81b5-70e0704651ca', 'rel': 'self'}, {'href': 'http://localhost/nodes/46d250a2-ce8d-44cf-81b5-70e0704651ca', '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=46d250a2-ce8d-44cf-81b5-70e0704651ca'} GET: /v1/chassis/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/nodes {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0fc61b3c-74d7-45ec-a91c-4fda1f1b4ba1 X-Openstack-Ironic-Api-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 {} 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_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_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_chassis.TestListChassis.test_nodes_subresource_no_uuid ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_nodes_subresource_no_uuid ... ok GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2024-01-06T13:31:34.962046+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-5c44d50a-bdc4-44a9-819f-dfe4add78946 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/chassis {'extra': {}, 'description': 'data-center-1-chassis'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/8a6d5294-baab-472e-ad5c-fa0b49521370 Openstack-Request-Id: req-2ea505e5-7326-43f6-8a73-9322c0cefa7a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "8a6d5294-baab-472e-ad5c-fa0b49521370", "created_at": "2024-01-06T13:31:35.516463+00:00", "updated_at": null, "description": "data-center-1-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/8a6d5294-baab-472e-ad5c-fa0b49521370", "rel": "self"}, {"href": "http://localhost/chassis/8a6d5294-baab-472e-ad5c-fa0b49521370", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/8a6d5294-baab-472e-ad5c-fa0b49521370/nodes", "rel": "self"}, {"href": "http://localhost/chassis/8a6d5294-baab-472e-ad5c-fa0b49521370/nodes", "rel": "bookmark"}]]} GET: /v1/chassis {} GOT:{'chassis': [{'uuid': '8a6d5294-baab-472e-ad5c-fa0b49521370', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/8a6d5294-baab-472e-ad5c-fa0b49521370', 'rel': 'self'}, {'href': 'http://localhost/chassis/8a6d5294-baab-472e-ad5c-fa0b49521370', '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-117dfbba-43eb-4441-9401-2e3517ce8b1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for chassis: 1334 is not of type 'string', 'null'\", \"debuginfo\": null}"} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {}, 'description': 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5a5271c8-dee9-45ad-9fc8-c5b9738d6d38 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for chassis: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' is too long\", \"debuginfo\": null}"} POST: /v1/chassis {'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'description': 'data-center-1-chassis'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 Openstack-Request-Id: req-535b5787-f569-405e-9382-8219449616b5 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-06T13:31:36.635177+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-06T13:31:36.635177+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-e922ac58-e7e0-464c-9a59-97ed9b285686 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/drivers/manual-management/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers/manual-management/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers/manual-management/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers/driver/properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-256c24c2-8352-4265-90c3-e59cdf7da205 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): driver.\", \"debuginfo\": null}"} GET: /v1/drivers/test/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers/manual-management/properties {} GOT:{'prop1': 'Property 1. Required.'} GET: /v1/drivers/bad_driver/properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-91216755-e928-4d51-ba1a-e335007a1fa0 X-Openstack-Ironic-Api-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/drivers/fake-hardware-type {} 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_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_chassis.TestListChassis.test_one ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_one ... 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_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.TestListChassis.test_sort_key ironic.tests.unit.api.controllers.v1.test_chassis.TestListChassis.test_sort_key ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.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_node_locked ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_attach_node_locked ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_async ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_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_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_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_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_deploy_template.TestPost.test_create_invalid_step_field_foo ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_foo ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_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_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_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_deploy_template.TestPost.test_create_invalid_step_field_interface1 ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_interface1 ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_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_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_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_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_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_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.TestAttachDetachVif.test_vif_detach ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach ... 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_deploy_template.TestPost.test_create_invalid_step_field_negative_priority ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_invalid_step_field_negative_priority ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_empty ... 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_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_driver.TestListDrivers.test_driver_vendor_passthru_sync ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_driver_vendor_passthru_sync ... 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': '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-acd1e60e-36ee-4dba-a37f-0918b9434ec3 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ffc0c1a6-9479-4d74-8c01-9be2dc0927bc X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-67d140ec-e8fc-4cc2-b73c-9a111069e621 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-40cab4d1-5605-4348-a7a9-197b0b580fe6 X-Openstack-Ironic-Api-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-9f9aa4e5-7271-4ff7-a020-453cceba4382 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-f16f5060-ff62-4fcd-ba43-a8821ccd2c8a X-Openstack-Ironic-Api-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': '985808f3-2ca2-48ff-9a9f-0adcccbd30b0'} GOT:Response: 204 No Content Openstack-Request-Id: req-072d0fc8-5f8f-45a6-b9dc-0685f6b662fb 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': '6be84cec-a713-4fde-b8d3-84c36c892ecc'} GOT:Response: 204 No Content Openstack-Request-Id: req-e957cfd0-3465-4c4f-b71b-8bf147318887 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': '2d024d8f-7ad0-4f2c-a2a2-e7055b0ee77a'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-995a2556-9dff-4eb7-bbd8-b3c769903f45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"boom\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'invalid%id^'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-33224896-6b96-40ae-ab19-b97e91b17b9a 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': '31ea47a7-8a56-42c6-9c15-e0f1b0999061'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9f396135-9c75-4b58-83cf-fcc506991421 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': 'a9c28852-dfb9-4e7a-8f28-1b526d7f76fd'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-6f0df846-1343-485f-82a6-ac3006f9db0b 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': 'ab47eefd-aadb-4136-8160-c703aabf7ec6'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b4d4086c-454e-4f46-81a6-786733b40904 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': '3082d811-1701-4ea4-b000-35a5ef6e05f2', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-cc157a37-2598-48df-9e3e-1a5efee2db96 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': '5508d9d8-9ff6-4c82-9a95-af24a930dec9', 'port_uuid': 'port-uuid', 'portgroup_uuid': 'portgroup-uuid'} GOT:Response: 204 No Content Openstack-Request-Id: req-08bb38af-2d7f-4b48-8086-47bccbf5d603 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/273e0e5e-0378-488d-9953-e31141118939 GOT:Response: 204 No Content Openstack-Request-Id: req-f34ffa5d-12e0-4695-9bed-74faf155ef57 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 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.TestAttachDetachVif.test_vif_detach_node_locked ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_detach_node_locked ... 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\"}"} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '346eb12d-f28d-47b8-9814-eef0f5e0828b', 'steps': [], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-48832d25-f450-4a39-9d29-d9ed7a6d1dd6 X-Openstack-Ironic-Api-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': '24cf3cad-2707-4fc6-98ef-e6b4dea7f0ca', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': 42} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-445091b9-d56e-4a66-ad17-a2c62bdf26cc X-Openstack-Ironic-Api-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': 'ffd74e9a-e2da-4582-b63f-38d123fa775c', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}, 'foo': 'bar'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a7b9d0c5-2213-4abd-8414-74496802fdcd X-Openstack-Ironic-Api-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': '24cf4934-f5e9-407f-b32f-d1c470c1bc67', '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-34c14f62-b91c-4a46-8aec-96f164ab684b X-Openstack-Ironic-Api-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': '1307ffa5-bd46-4d45-a0d2-5be9fa0bf82d', '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-6442cf27-65f2-450b-a041-c4966ca9185d X-Openstack-Ironic-Api-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': '0ef72d40-2552-4fb9-92ab-6560c8b64d16', 'steps': {}, 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-00cda864-714b-4c33-af48-582c59711951 X-Openstack-Ironic-Api-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': '8da35934-8a30-4729-a28b-fefe28b1456c', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': 'not a dict', 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a4400740-a03e-44e7-8b4b-cd6b8e67d842 X-Openstack-Ironic-Api-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': '8a4875be-45fc-4742-ad56-448c0b9471f6', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': [], 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-67c9fdfd-37c5-4374-b1d7-567ca4cfb0d9 X-Openstack-Ironic-Api-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': 'd4241af9-4e49-436f-a04a-d020b6b7108d', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10, 'foo': 'bar'}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-208ecaef-6724-4f0b-8266-16455553b231 X-Openstack-Ironic-Api-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': '2e8cf9b1-ef5a-4f8a-9c14-268a58b460a8', '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-d20c391b-7459-46ae-ae33-c82a9cbaaf86 X-Openstack-Ironic-Api-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': '2767ddc7-6a18-43c1-9980-1ecc02aa5d60', '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-b29b8b7a-f4f8-48b9-998d-0829d78ba080 X-Openstack-Ironic-Api-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': 'd4305b86-4eac-411e-a736-fa2b6f0dad70', '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-46658d64-a32c-488f-9ac1-cdfe4f33659d X-Openstack-Ironic-Api-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': '534753a8-b09e-4d84-a893-9cd4b000ebcb', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 'not a number'}], 'extra': {}} 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_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_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_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.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_driver.TestListDrivers.test_drivers ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_long_name ... ok ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_get_one_conductor_offline ... ok ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list ironic.tests.unit.api.controllers.v1.test_node.TestAttachDetachVif.test_vif_list ... 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_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_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_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_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 GOT:{'uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'created_at': '2024-01-06T13:31:38.688591+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-89afe8c0-a398-4294-b61c-205bbd0dc3c1 X-Openstack-Ironic-Api-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': '215463e7-2538-423c-be2d-0fe1f5f3b824', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/215463e7-2538-423c-be2d-0fe1f5f3b824', 'rel': 'self'}, {'href': 'http://localhost/chassis/215463e7-2538-423c-be2d-0fe1f5f3b824', 'rel': 'bookmark'}]}, {'uuid': '6cd41395-02e6-4721-9a86-c74cb76e7f70', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/6cd41395-02e6-4721-9a86-c74cb76e7f70', 'rel': 'self'}, {'href': 'http://localhost/chassis/6cd41395-02e6-4721-9a86-c74cb76e7f70', 'rel': 'bookmark'}]}, {'uuid': 'bc7dfd56-1e80-4039-bb4a-7e66348cb1b6', 'description': 'data-center-1-chassis', 'links': [{'href': 'http://localhost/v1/chassis/bc7dfd56-1e80-4039-bb4a-7e66348cb1b6', 'rel': 'self'}, {'href': 'http://localhost/chassis/bc7dfd56-1e80-4039-bb4a-7e66348cb1b6', 'rel': 'bookmark'}]}]} GET: /v1/chassis?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-52d011c0-da81-4ad8-9b7a-adeb40087465 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-f27ad118-f55e-47fb-a7c7-a3768174e591 X-Openstack-Ironic-Api-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}"} GET: /v1/conductors/?limit=3 {} GOT:{'conductors': [{'hostname': 'ead71e2c-9ab7-410a-8d42-92bd22205f39', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/ead71e2c-9ab7-410a-8d42-92bd22205f39', 'rel': 'self'}, {'href': 'http://localhost/conductors/ead71e2c-9ab7-410a-8d42-92bd22205f39', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '0cfaae7a-2447-4ea7-b4e9-6de8cd953b63', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/0cfaae7a-2447-4ea7-b4e9-6de8cd953b63', 'rel': 'self'}, {'href': 'http://localhost/conductors/0cfaae7a-2447-4ea7-b4e9-6de8cd953b63', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '1abeed30-5e5f-434b-9c88-8934240f302c', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/1abeed30-5e5f-434b-9c88-8934240f302c', 'rel': 'self'}, {'href': 'http://localhost/conductors/1abeed30-5e5f-434b-9c88-8934240f302c', 'rel': 'bookmark'}], 'alive': True}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=1abeed30-5e5f-434b-9c88-8934240f302c'} GET: /v1/conductors?fields=hostname,alive {} GOT:{'conductors': [{'hostname': 'e59b2d3c-19cf-495f-81c2-41243fb177d6', 'links': [{'href': 'http://localhost/v1/conductors/e59b2d3c-19cf-495f-81c2-41243fb177d6', 'rel': 'self'}, {'href': 'http://localhost/conductors/e59b2d3c-19cf-495f-81c2-41243fb177d6', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '9a26ccf1-7070-4672-865b-2246666d77b9', 'links': [{'href': 'http://localhost/v1/conductors/9a26ccf1-7070-4672-865b-2246666d77b9', 'rel': 'self'}, {'href': 'http://localhost/conductors/9a26ccf1-7070-4672-865b-2246666d77b9', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '2ea558d9-71bb-410e-9b7f-1817960e0afc', 'links': [{'href': 'http://localhost/v1/conductors/2ea558d9-71bb-410e-9b7f-1817960e0afc', 'rel': 'self'}, {'href': 'http://localhost/conductors/2ea558d9-71bb-410e-9b7f-1817960e0afc', 'rel': 'bookmark'}], 'alive': True}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,alive&limit=3&marker=2ea558d9-71bb-410e-9b7f-1817960e0afc'} GET: /v1/conductors {} GOT:{'conductors': [{'hostname': '39ea4772-46e2-458c-ae9a-884b1b1fb462', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/39ea4772-46e2-458c-ae9a-884b1b1fb462', 'rel': 'self'}, {'href': 'http://localhost/conductors/39ea4772-46e2-458c-ae9a-884b1b1fb462', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'e95f4ee7-98ff-425e-a2a2-241677cb16b8', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/e95f4ee7-98ff-425e-a2a2-241677cb16b8', 'rel': 'self'}, {'href': 'http://localhost/conductors/e95f4ee7-98ff-425e-a2a2-241677cb16b8', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '176cdec1-b6ac-4fd9-83ea-9c59f60f7139', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/176cdec1-b6ac-4fd9-83ea-9c59f60f7139', 'rel': 'self'}, {'href': 'http://localhost/conductors/176cdec1-b6ac-4fd9-83ea-9c59f60f7139', 'rel': 'bookmark'}], 'alive': True}], 'next': 'http://localhost/v1/conductors?sort_key=id&sort_dir=asc&fields=hostname,conductor_group,alive&limit=3&marker=176cdec1-b6ac-4fd9-83ea-9c59f60f7139'} 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-a22896ed-d6f4-4c84-b9fc-10bb627c1895 X-Openstack-Ironic-Api-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-06T13:31:42.255399+00:00', 'updated_at': '2024-01-06T13:31:42.254674+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 {} 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_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.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_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.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_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_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_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.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_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_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_driver.TestListDrivers.test_drivers_detail_bad_version ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.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_conductor.TestListConductors.test_list ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_list ... ok ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_detail_bad_version_false ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_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_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_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_driver.TestListDrivers.test_drivers_get_one_not_found ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_get_one_not_found ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_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_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_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 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'}], '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-85cd290e-b434-412e-9c1b-39ec1321854e 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-5061d2fa-34d5-4211-a996-40bbe7e9d839 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-055f8274-e3e8-4c0f-bcae-3e35db5e21b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} GET: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {} GOT:foo POST: /v1/drivers/fake-hardware-type/vendor_passthru {'test_key': 'test_value'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-105d38d1-10b2-4c5b-a895-5b071d4e8599 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Missing mandatory parameter: method\", \"debuginfo\": null}"} GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} GOT:{'foo': 'bar'} GET: /v1/drivers/fake-hardware-type/vendor_passthru/methods {} GOT:{'foo': 'bar'} PUT: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 202 Accepted Openstack-Request-Id: req-6a792ae0-e91f-466c-a30f-8f5ee10a7515 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 POST: /v1/drivers/fake-hardware-type/vendor_passthru/do_test {'test_key': 'test_value'} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f1d4aa34-6b51-4e6e-a1b2-f4f3ee5eec4f 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-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-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:{'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-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 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-84a4c5bb-1700-407d-81a0-9a0f68625ede X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.77 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Can not specify ?detail=True and fields in the same request.\", \"debuginfo\": null}"} GET: /v1/drivers?fields=name,invalid {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3596996f-fe8b-4301-8fd8-0e9e45157df6 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 Content-Type: application/json Openstack-Request-Id: req-b83687c5-d404-4750-92fd-cfe9a83eb73d 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 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6aeca6e0-dca5-4ba7-b27f-f4465ab5f56d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} GET: /v1/drivers/nope {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-50e1075c-a70d-49ef-a06d-fbdff1a6b700 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): nope.\", \"debuginfo\": null}"} GET: /v1/drivers/fake-hardware-type {} ironic.tests.unit.api.controllers.v1.test_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_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_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_conductor.TestListConductors.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_conductor.TestListConductors.test_sort_key_invalid ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3654012c-94f4-47bf-af5a-9c650a978111 X-Openstack-Ironic-Api-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': 'febca2e4-9e65-4da9-b620-cea983c115dc', 'steps': [{'interface': 'raid', 'step': 42, 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c2682d75-a3f8-4e02-b46b-2c64edca4a15 X-Openstack-Ironic-Api-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': 'dd3e5b9c-dd24-4e05-ba48-537721c04b7d', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/dd3e5b9c-dd24-4e05-ba48-537721c04b7d Openstack-Request-Id: req-13a9d3b0-7199-4845-9c20-302fa157527a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "dd3e5b9c-dd24-4e05-ba48-537721c04b7d", "created_at": "2024-01-06T13:31:42.331756+00:00", "updated_at": null, "name": "CUSTOM_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/dd3e5b9c-dd24-4e05-ba48-537721c04b7d", "rel": "self"}, {"href": "http://localhost/deploy_templates/dd3e5b9c-dd24-4e05-ba48-537721c04b7d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} POST: /v1/deploy_templates {'name': 'not-a-trait', 'uuid': '8c04b5d1-b2cd-465e-8df3-1d14ea6088c0', '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-1acbd484-b86c-4eb8-9842-781ad04f4638 X-Openstack-Ironic-Api-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': 'd9e941ad-9238-4893-aef3-15830a2ed153', '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-ffefc0e0-541a-4dd4-813d-c7316d572d3f X-Openstack-Ironic-Api-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': '84b5646f-e096-45cf-88e4-df51274033f2', '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-b561fcc3-0924-4036-b4e5-730122daa686 X-Openstack-Ironic-Api-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': 'd6b39601-5c8f-466c-ab53-adcfdc4377b3', 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f8649aa4-c263-45db-9ffb-aa9bcc9185ea X-Openstack-Ironic-Api-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': '8c00c196-b9ba-4d86-9150-8bacbb408755', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-222275be-7aea-4961-964f-492273054b66 X-Openstack-Ironic-Api-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': 'a83accf1-5b36-4f58-9013-d7627af8b9c8', 'steps': [{'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0c01779e-cab1-4d18-b7a8-8d2f43a345cd X-Openstack-Ironic-Api-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': '7c313855-4650-452a-8a4f-a3754122d532', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-75ef8f93-b9b7-48d1-abba-25ca1ed3b9eb X-Openstack-Ironic-Api-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': 'd74f3ab2-9a71-4f76-8999-10beb38d5e20', 'steps': [{'interface': 'raid', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6ea495b0-6f16-469c-9edd-9a430764b5ea X-Openstack-Ironic-Api-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': 'dda7a205-b6f7-4333-b911-6f0d2c0567f2', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}], 'extra': {}} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name ironic.tests.unit.api.controllers.v1.test_deploy_template.TestPost.test_create_standard_trait_name ... ok ironic.tests.unit.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_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_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_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_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_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_drivers_no_active_conductor ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_no_active_conductor ... ok 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-16cf5d59-b59a-4177-b608-75f75dab5a4a 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-06T13:31:43.435293+00:00', 'updated_at': '2024-01-06T13:31:43.434553+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-06T13:31:43.435293+00:00', 'updated_at': '2024-01-06T13:31:43.434553+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-06T13:31:43.435293+00:00', 'updated_at': '2024-01-06T13:31:43.434553+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-06T13:31:43.862312+00:00', 'updated_at': '2024-01-06T13:31:43.861563+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-06T13:31:43.862312+00:00', 'updated_at': '2024-01-06T13:31:43.861563+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-06T13:31:43.862312+00:00', 'updated_at': '2024-01-06T13:31:43.861563+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': '2024-01-06T13:31:44.622230+00:00', 'updated_at': '2024-01-06T13:31:44.613436+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-06T13:31:44.628069+00:00', 'updated_at': '2024-01-06T13:31:44.627453+00:00', 'hostname': 'why not', 'conductor_group': '', 'drivers': ['fake-driver', 'null-driver'], 'links': [{'href': 'http://localhost/v1/conductors/why not', 'rel': 'self'}, {'href': 'http://localhost/conductors/why not', 'rel': 'bookmark'}], 'alive': True}]} GET: /v1/conductors {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c95ac6eb-5758-434d-bf69-e2f983add522 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': '0c8488e9-c32a-4642-b79e-fa8a9c0f22de', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/0c8488e9-c32a-4642-b79e-fa8a9c0f22de', 'rel': 'self'}, {'href': 'http://localhost/conductors/0c8488e9-c32a-4642-b79e-fa8a9c0f22de', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '35d2971c-4e66-44b8-a234-80cf55a2390c', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/35d2971c-4e66-44b8-a234-80cf55a2390c', 'rel': 'self'}, {'href': 'http://localhost/conductors/35d2971c-4e66-44b8-a234-80cf55a2390c', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '4beaa744-d51d-4576-a567-cf8047cdd60e', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/4beaa744-d51d-4576-a567-cf8047cdd60e', 'rel': 'self'}, {'href': 'http://localhost/conductors/4beaa744-d51d-4576-a567-cf8047cdd60e', 'rel': 'bookmark'}], 'alive': True}, {'hostname': '715312bc-08a8-42d2-9e1d-18a480cea2cf', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/715312bc-08a8-42d2-9e1d-18a480cea2cf', 'rel': 'self'}, {'href': 'http://localhost/conductors/715312bc-08a8-42d2-9e1d-18a480cea2cf', 'rel': 'bookmark'}], 'alive': True}, {'hostname': 'f40e5ec6-2fd9-4e86-bd35-278ff3d4f335', 'conductor_group': '', 'links': [{'href': 'http://localhost/v1/conductors/f40e5ec6-2fd9-4e86-bd35-278ff3d4f335', 'rel': 'self'}, {'href': 'http://localhost/conductors/f40e5ec6-2fd9-4e86-bd35-278ff3d4f335', 'rel': 'bookmark'}], 'alive': True}]} GET: /v1/conductors?sort_key=alive {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2d5ff752-1172-4a6d-8839-0f0dc506ef02 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-40122447-d96d-4107-acc5-6afd310db12f X-Openstack-Ironic-Api-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}"} GET: /v1/deploy_templates/?limit=3 {} GOT:{'deploy_templates': [{'uuid': '4af9d696-c549-4361-a460-e43c6238df8c', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/4af9d696-c549-4361-a460-e43c6238df8c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4af9d696-c549-4361-a460-e43c6238df8c', 'rel': 'bookmark'}]}, {'uuid': '1ead13eb-000a-4a03-bebe-e757bd40a8fb', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/1ead13eb-000a-4a03-bebe-e757bd40a8fb', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/1ead13eb-000a-4a03-bebe-e757bd40a8fb', 'rel': 'bookmark'}]}, {'uuid': '114210b2-502f-43bc-b7e7-6bc022f62789', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/114210b2-502f-43bc-b7e7-6bc022f62789', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/114210b2-502f-43bc-b7e7-6bc022f62789', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=114210b2-502f-43bc-b7e7-6bc022f62789'} 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.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_driver.TestListDrivers.test_drivers_type_filter_bad_value ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_bad_value ... ok ironic.tests.unit.api.controllers.v1.test_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_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_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_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_driver.TestListDrivers.test_drivers_type_filter_classic ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_type_filter_classic ... ok DELETE: /v1/nodes/node-39/vifs/4be8458c-d2be-42e7-9cfa-6fc0678e54e9 GOT:Response: 204 No Content Openstack-Request-Id: req-5df1b5f7-a214-4a9a-9803-bfd26c40f407 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/86dde549-5f25-409c-acee-115b9c5d35e0 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-1302c109-5d9d-476f-979e-20e014675136 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/344bd28b-0fab-48d4-8258-2d10447e46f1 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-40d69099-d9bb-416b-b96c-5c131bc87ecc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.28 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node doesntexist could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:{'vifs': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} GOT:{'history': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?detail=true {} GOT:{'history': [{'uuid': '04897039-160a-4675-87a6-abdac861417c', 'created_at': '2024-01-06T13:31:43.739585+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/04897039-160a-4675-87a6-abdac861417c', 'rel': 'self'}]}, {'uuid': '741c7a45-442b-4e17-b295-bac344ac45af', 'created_at': '2024-01-06T13:31:43.753763+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/741c7a45-442b-4e17-b295-bac344ac45af', 'rel': 'self'}]}, {'uuid': '98c4cb83-d8c7-40e7-94e4-1a7ba2c9e6d3', 'created_at': '2024-01-06T13:31:43.774760+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/98c4cb83-d8c7-40e7-94e4-1a7ba2c9e6d3', 'rel': 'self'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} GOT:{'history': [{'uuid': '373ab60b-0e7a-47b9-9dee-fe9527e9c50b', 'created_at': '2024-01-06T13:31:44.083577+00:00', 'severity': None, 'event': 'meow', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/373ab60b-0e7a-47b9-9dee-fe9527e9c50b', 'rel': 'self'}]}, {'uuid': 'eaf2d76a-56b0-459c-b45d-5444ae0f83e0', 'created_at': '2024-01-06T13:31:44.096382+00:00', 'severity': None, 'event': 'purr', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/eaf2d76a-56b0-459c-b45d-5444ae0f83e0', 'rel': 'self'}]}, {'uuid': 'a1ef7d7b-6922-489c-8f23-97d7576be9f0', 'created_at': '2024-01-06T13:31:44.104900+00:00', 'severity': None, 'event': 'grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/a1ef7d7b-6922-489c-8f23-97d7576be9f0', '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': '4521f913-ec4a-4ddd-a071-b3f00c5c6f04', 'created_at': '2024-01-06T13:31:44.959762+00:00', 'severity': None, 'event': 'meow', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4521f913-ec4a-4ddd-a071-b3f00c5c6f04', 'rel': 'self'}]}], 'next': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=None&fields=uuid,created_at,severity,event&limit=1&marker=4521f913-ec4a-4ddd-a071-b3f00c5c6f04'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=4521f913-ec4a-4ddd-a071-b3f00c5c6f04 {} GOT:{'history': [{'uuid': 'e882a8b1-db73-4119-9caa-44d81aff4fa8', 'created_at': '2024-01-06T13:31:44.968364+00:00', 'severity': None, 'event': 'purr', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/e882a8b1-db73-4119-9caa-44d81aff4fa8', 'rel': 'self'}]}], 'next': "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree1',created_at=2024-01-06T13:31:44Z,event='meow',event_type=None,id=1,node_id=1,severity=None,updated_at=None,user='peaches',uuid=4521f913-ec4a-4ddd-a071-b3f00c5c6f04)&fields=uuid,created_at,severity,event&limit=1&marker=e882a8b1-db73-4119-9caa-44d81aff4fa8"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?limit=1&marker=e882a8b1-db73-4119-9caa-44d81aff4fa8 {} GOT:{'history': [{'uuid': '946e7977-6baa-4d58-98e0-cc976be5f1c3', 'created_at': '2024-01-06T13:31:44.980443+00:00', 'severity': None, 'event': 'grrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr...', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/946e7977-6baa-4d58-98e0-cc976be5f1c3', 'rel': 'self'}]}], 'next': "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history?marker=NodeHistory(conductor='cat-tree2',created_at=2024-01-06T13:31:44Z,event='purr',event_type=None,id=2,node_id=1,severity=None,updated_at=None,user='sage',uuid=e882a8b1-db73-4119-9caa-44d81aff4fa8)&fields=uuid,created_at,severity,event&limit=1&marker=946e7977-6baa-4d58-98e0-cc976be5f1c3"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4a712a4e-ed61-4a94-8090-2dfecd38272a {} GOT:{'uuid': '4a712a4e-ed61-4a94-8090-2dfecd38272a', 'created_at': '2024-01-06T13:31:45.772984+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/4a712a4e-ed61-4a94-8090-2dfecd38272a', '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-6436a642-c3cb-4684-b823-a6de4be8925d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.78 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node history record 52949728-59fc-4651-84c8-b0a16b469372 could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/1234 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_add_single_trait ... ok ironic.tests.unit.api.controllers.v1.test_node.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_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_deploy_template.TestListDeployTemplates.test_detail_query_false ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_query_false ... ok ironic.tests.unit.api.controllers.v1.test_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_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_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_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_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_detail_using_query_false_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.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.TestListDeployTemplates.test_empty ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_empty ... 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_boot_interface': None, 'enabled_boot_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['direct', 'ansible'], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_console_interface': None, 'enabled_console_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/properties {} GET: /drivers/fake-hardware-type/properties {} 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'}], '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_storage_interface': None, 'enabled_storage_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['direct', 'ansible'], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_rescue_interface': None, 'enabled_rescue_interfaces': [], 'default_bios_interface': None, 'enabled_bios_interfaces': [], 'default_console_interface': None, 'enabled_console_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/properties {} GET: /drivers/fake-hardware-type/properties {} GET: /v1/drivers {} GOT:{'drivers': []} GET: /v1/drivers?type=working {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-80b6d914-5c86-491b-9a42-2856070a6333 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.30 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"\\\"type\\\" filter must be one of \\\"classic\\\" or \\\"dynamic\\\", if specified.\", \"debuginfo\": null}"} GET: /v1/drivers?type=classic {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-c50bead7-26f5-4e70-a69b-ddcea9f56063 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.29 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.30\", \"debuginfo\": null}"} GET: /v1/drivers?type=classic {} GOT:{'drivers': []} GET: /v1/drivers?type=dynamic {} GOT:{'drivers': [{'name': 'fake-hardware-type', 'hosts': ['fake-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 {} 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_driver.TestListDrivers.test_drivers_with_dynamic_detailed ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_drivers_with_dynamic_detailed ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/dda7a205-b6f7-4333-b911-6f0d2c0567f2 Openstack-Request-Id: req-3824e96f-e92e-4b6b-ae3a-0302201443e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "dda7a205-b6f7-4333-b911-6f0d2c0567f2", "created_at": "2024-01-06T13:31:45.510421+00:00", "updated_at": null, "name": "HW_CPU_X86_VMX", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/dda7a205-b6f7-4333-b911-6f0d2c0567f2", "rel": "self"}, {"href": "http://localhost/deploy_templates/dda7a205-b6f7-4333-b911-6f0d2c0567f2", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': 'e1fb5ca2-c5e2-4ff8-af14-7242a2dfe3d0', 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': '42'}], 'extra': {}} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/e1fb5ca2-c5e2-4ff8-af14-7242a2dfe3d0 Openstack-Request-Id: req-896cb7d5-907d-4bd7-9eb8-e43cd16f7096 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "e1fb5ca2-c5e2-4ff8-af14-7242a2dfe3d0", "created_at": "2024-01-06T13:31:45.884987+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/e1fb5ca2-c5e2-4ff8-af14-7242a2dfe3d0", "rel": "self"}, {"href": "http://localhost/deploy_templates/e1fb5ca2-c5e2-4ff8-af14-7242a2dfe3d0", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": "42"}]} POST: /v1/deploy_templates {'name': 'CUSTOM_DT1', 'uuid': '948a9cf8-63bd-4741-9069-6ddc962b559b', '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-238a0ff7-5160-4e65-8c68-8aa8b4154ddd X-Openstack-Ironic-Api-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}"} GET: /v1/nodes?associated=blah {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-547db355-972f-4e1f-a8da-02e53431bd33 X-Openstack-Ironic-Api-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': 'b22d5575-18e4-4881-871b-0624a61671f5', 'instance_uuid': '209cb6be-c2fc-4232-a510-c3043adcff1b', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/b22d5575-18e4-4881-871b-0624a61671f5', 'rel': 'self'}, {'href': 'http://localhost/nodes/b22d5575-18e4-4881-871b-0624a61671f5', 'rel': 'bookmark'}]}, {'uuid': 'd415d3c9-c222-44f6-9ec8-ca53a21fd7f6', 'instance_uuid': '80855b28-9da8-483c-9968-9fe1f849b1c0', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/d415d3c9-c222-44f6-9ec8-ca53a21fd7f6', 'rel': 'self'}, {'href': 'http://localhost/nodes/d415d3c9-c222-44f6-9ec8-ca53a21fd7f6', 'rel': 'bookmark'}]}, {'uuid': 'c5791ac8-f8b0-4dd4-9263-a3297d81862d', 'instance_uuid': 'e03a0d4b-6df5-4bee-ac68-da9e9c3b1128', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/c5791ac8-f8b0-4dd4-9263-a3297d81862d', 'rel': 'self'}, {'href': 'http://localhost/nodes/c5791ac8-f8b0-4dd4-9263-a3297d81862d', 'rel': 'bookmark'}]}, {'uuid': '7f082795-bfd7-4580-9a09-e087db56e10d', 'instance_uuid': '237c6b9a-f6f1-4e33-adab-ef3cf8e686c8', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/7f082795-bfd7-4580-9a09-e087db56e10d', 'rel': 'self'}, {'href': 'http://localhost/nodes/7f082795-bfd7-4580-9a09-e087db56e10d', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=True {} GOT:{'nodes': [{'uuid': 'b22d5575-18e4-4881-871b-0624a61671f5', 'instance_uuid': '209cb6be-c2fc-4232-a510-c3043adcff1b', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/b22d5575-18e4-4881-871b-0624a61671f5', 'rel': 'self'}, {'href': 'http://localhost/nodes/b22d5575-18e4-4881-871b-0624a61671f5', 'rel': 'bookmark'}]}, {'uuid': 'd415d3c9-c222-44f6-9ec8-ca53a21fd7f6', 'instance_uuid': '80855b28-9da8-483c-9968-9fe1f849b1c0', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/d415d3c9-c222-44f6-9ec8-ca53a21fd7f6', 'rel': 'self'}, {'href': 'http://localhost/nodes/d415d3c9-c222-44f6-9ec8-ca53a21fd7f6', 'rel': 'bookmark'}]}, {'uuid': 'c5791ac8-f8b0-4dd4-9263-a3297d81862d', 'instance_uuid': 'e03a0d4b-6df5-4bee-ac68-da9e9c3b1128', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/c5791ac8-f8b0-4dd4-9263-a3297d81862d', 'rel': 'self'}, {'href': 'http://localhost/nodes/c5791ac8-f8b0-4dd4-9263-a3297d81862d', 'rel': 'bookmark'}]}, {'uuid': '7f082795-bfd7-4580-9a09-e087db56e10d', 'instance_uuid': '237c6b9a-f6f1-4e33-adab-ef3cf8e686c8', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/7f082795-bfd7-4580-9a09-e087db56e10d', 'rel': 'self'}, {'href': 'http://localhost/nodes/7f082795-bfd7-4580-9a09-e087db56e10d', 'rel': 'bookmark'}]}]} GET: /v1/nodes/?limit=3 {} GOT:{'nodes': [{'uuid': '4ea4bb61-f067-42d1-b079-5cdc84f98956', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/4ea4bb61-f067-42d1-b079-5cdc84f98956', 'rel': 'self'}, {'href': 'http://localhost/nodes/4ea4bb61-f067-42d1-b079-5cdc84f98956', 'rel': 'bookmark'}]}, {'uuid': '8e4b7b8b-0677-4587-81b2-c94d74a627a7', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/8e4b7b8b-0677-4587-81b2-c94d74a627a7', 'rel': 'self'}, {'href': 'http://localhost/nodes/8e4b7b8b-0677-4587-81b2-c94d74a627a7', 'rel': 'bookmark'}]}, {'uuid': '2838e72e-d089-4a81-89c9-35fb4c8db9e1', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/2838e72e-d089-4a81-89c9-35fb4c8db9e1', 'rel': 'self'}, {'href': 'http://localhost/nodes/2838e72e-d089-4a81-89c9-35fb4c8db9e1', '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=2838e72e-d089-4a81-89c9-35fb4c8db9e1'} GET: /v1/nodes?fields=driver_info,uuid {} 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_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_all_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_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_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_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_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_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_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.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_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_node.TestListNodes.test_detail ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail ... 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_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_custom_fields ... 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', 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['direct', 'ansible'], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': []}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}], 'type': 'dynamic', 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_deploy_interface': None, 'enabled_deploy_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_console_interface': None, 'enabled_console_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_storage_interface': None, 'enabled_storage_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_deploy_interface': 'direct', 'enabled_deploy_interfaces': ['direct', 'ansible'], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_rescue_interface': None, 'enabled_rescue_interfaces': [], 'default_bios_interface': None, 'enabled_bios_interfaces': [], 'default_console_interface': None, 'enabled_console_interfaces': []}, {'name': 'fake-hardware-type-2', 'hosts': ['fake-host1'], 'links': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2', 'rel': 'bookmark'}], 'properties': [{'href': 'http://localhost/v1/drivers/fake-hardware-type-2/properties', 'rel': 'self'}, {'href': 'http://localhost/drivers/fake-hardware-type-2/properties', 'rel': 'bookmark'}], 'type': 'dynamic', 'default_power_interface': None, 'enabled_power_interfaces': [], 'default_storage_interface': None, 'enabled_storage_interfaces': [], 'default_boot_interface': None, 'enabled_boot_interfaces': [], 'default_vendor_interface': None, 'enabled_vendor_interfaces': [], 'default_network_interface': None, 'enabled_network_interfaces': [], 'default_management_interface': None, 'enabled_management_interfaces': [], 'default_inspect_interface': None, 'enabled_inspect_interfaces': [], 'default_deploy_interface': None, 'enabled_deploy_interfaces': [], 'default_raid_interface': None, 'enabled_raid_interfaces': [], 'default_rescue_interface': None, 'enabled_rescue_interfaces': [], 'default_bios_interface': None, 'enabled_bios_interfaces': [], 'default_console_interface': None, 'enabled_console_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-a74fa5f6-c9f0-4883-83e7-0a11d0f3a521 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 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e3e05722-7a98-416d-912d-a7fb15c4667b 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 {} 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.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_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_driver.TestListDrivers.test_links ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links ... ok GOT:{'deploy_templates': [{'uuid': '40432fa9-9238-4cc2-ad7a-fd843121c5e4', 'links': [{'href': 'http://localhost/v1/deploy_templates/40432fa9-9238-4cc2-ad7a-fd843121c5e4', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/40432fa9-9238-4cc2-ad7a-fd843121c5e4', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '52644535-862d-4516-9b8a-8ac57ecd0092', 'links': [{'href': 'http://localhost/v1/deploy_templates/52644535-862d-4516-9b8a-8ac57ecd0092', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/52644535-862d-4516-9b8a-8ac57ecd0092', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': 'fb66691c-8b7f-47c1-8b2c-43b5ddeab971', 'links': [{'href': 'http://localhost/v1/deploy_templates/fb66691c-8b7f-47c1-8b2c-43b5ddeab971', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/fb66691c-8b7f-47c1-8b2c-43b5ddeab971', '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=fb66691c-8b7f-47c1-8b2c-43b5ddeab971'} GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': '4874e03d-2c42-4969-b634-d7b22680894f', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/4874e03d-2c42-4969-b634-d7b22680894f', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4874e03d-2c42-4969-b634-d7b22680894f', 'rel': 'bookmark'}]}, {'uuid': '994f9c7a-5686-4024-8b9f-801d859bd8eb', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/994f9c7a-5686-4024-8b9f-801d859bd8eb', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/994f9c7a-5686-4024-8b9f-801d859bd8eb', 'rel': 'bookmark'}]}, {'uuid': 'f077549a-7afe-46c8-805f-84070516365c', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/f077549a-7afe-46c8-805f-84070516365c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/f077549a-7afe-46c8-805f-84070516365c', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=uuid,name&limit=3&marker=f077549a-7afe-46c8-805f-84070516365c'} GET: /v1/deploy_templates?detail=True {} GOT:{'deploy_templates': [{'uuid': '05fea601-4a3e-4460-992e-c78526855a35', 'created_at': '2024-01-06T13:31:47.115290+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/05fea601-4a3e-4460-992e-c78526855a35', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/05fea601-4a3e-4460-992e-c78526855a35', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}]} GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': '3bd55b04-dbbb-48b6-889b-8ac1a465a68a', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/3bd55b04-dbbb-48b6-889b-8ac1a465a68a', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3bd55b04-dbbb-48b6-889b-8ac1a465a68a', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates?detail=False {} GOT:{'deploy_templates': [{'uuid': '3bd55b04-dbbb-48b6-889b-8ac1a465a68a', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/3bd55b04-dbbb-48b6-889b-8ac1a465a68a', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3bd55b04-dbbb-48b6-889b-8ac1a465a68a', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates?sort_key=name&detail=True {} GOT:{'deploy_templates': [{'uuid': 'b1b4a685-8f17-4c82-a88c-b9a91f056c59', 'created_at': '2024-01-06T13:31:47.676313+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/b1b4a685-8f17-4c82-a88c-b9a91f056c59', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/b1b4a685-8f17-4c82-a88c-b9a91f056c59', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '03a7486b-b899-4691-8d05-33579505c02e', 'created_at': '2024-01-06T13:31:47.661277+00:00', 'updated_at': None, 'name': 'CUSTOM_DT2', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/03a7486b-b899-4691-8d05-33579505c02e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/03a7486b-b899-4691-8d05-33579505c02e', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': '47c85e8c-1d60-46df-aa7d-c7908dbeb34d', 'created_at': '2024-01-06T13:31:47.645735+00:00', 'updated_at': None, 'name': 'CUSTOM_DT3', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/47c85e8c-1d60-46df-aa7d-c7908dbeb34d', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/47c85e8c-1d60-46df-aa7d-c7908dbeb34d', '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-ef55744f-6f68-408d-a47b-9e6e1f57fcc4 X-Openstack-Ironic-Api-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/927e6eee-9f58-4eaa-a538-038fbfdfcb29', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/927e6eee-9f58-4eaa-a538-038fbfdfcb29', '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': 'b429930a-9698-4b2c-b012-c3551bbd6449', 'links': [{'href': 'http://localhost/v1/deploy_templates/b429930a-9698-4b2c-b012-c3551bbd6449', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/b429930a-9698-4b2c-b012-c3551bbd6449', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': 'fdfbd113-1d0a-44c0-af53-f9ccf2066953', 'links': [{'href': 'http://localhost/v1/deploy_templates/fdfbd113-1d0a-44c0-af53-f9ccf2066953', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/fdfbd113-1d0a-44c0-af53-f9ccf2066953', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}, {'uuid': 'fd8f76bb-b058-44fb-8167-495265cbe5d9', 'links': [{'href': 'http://localhost/v1/deploy_templates/fd8f76bb-b058-44fb-8167-495265cbe5d9', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/fd8f76bb-b058-44fb-8167-495265cbe5d9', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]}]} GET: /v1/deploy_templates?fields=name&limit=2 {} ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_collection_pagination_no_uuid ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_custom_fields_invalid_fields ... ok ironic.tests.unit.api.controllers.v1.test_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_deploy_template.TestListDeployTemplates.test_get_one ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one ... ok ironic.tests.unit.api.controllers.v1.test_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_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_deploy_template.TestListDeployTemplates.test_get_one_custom_fields ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_get_one_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_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.TestTraits.test_delete_all_traits_with_chassis ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_all_traits_with_chassis ... ok ironic.tests.unit.api.controllers.v1.test_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_driver.TestListDrivers.test_links_public_url ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_links_public_url ... ok GOT:{'nodes': [{'uuid': 'afe9a217-110f-4f9c-8ed3-14fb3d252199', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/afe9a217-110f-4f9c-8ed3-14fb3d252199', 'rel': 'self'}, {'href': 'http://localhost/nodes/afe9a217-110f-4f9c-8ed3-14fb3d252199', 'rel': 'bookmark'}]}, {'uuid': '942539da-b438-4696-9a03-474757d91d4b', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/942539da-b438-4696-9a03-474757d91d4b', 'rel': 'self'}, {'href': 'http://localhost/nodes/942539da-b438-4696-9a03-474757d91d4b', 'rel': 'bookmark'}]}, {'uuid': 'aae50e4f-ff47-4901-936b-050152fdc274', 'driver_info': {'fake': 'value'}, 'links': [{'href': 'http://localhost/v1/nodes/aae50e4f-ff47-4901-936b-050152fdc274', 'rel': 'self'}, {'href': 'http://localhost/nodes/aae50e4f-ff47-4901-936b-050152fdc274', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=driver_info,uuid&limit=3&marker=aae50e4f-ff47-4901-936b-050152fdc274'} GET: /v1/nodes {} GOT:{'nodes': [{'uuid': 'd6a8d6b7-acc9-45be-8c4f-ba96a84cf84d', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/d6a8d6b7-acc9-45be-8c4f-ba96a84cf84d', 'rel': 'self'}, {'href': 'http://localhost/nodes/d6a8d6b7-acc9-45be-8c4f-ba96a84cf84d', 'rel': 'bookmark'}]}, {'uuid': 'aabb2d56-6e69-4fc7-ab0e-f00f49aa4fb6', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/aabb2d56-6e69-4fc7-ab0e-f00f49aa4fb6', 'rel': 'self'}, {'href': 'http://localhost/nodes/aabb2d56-6e69-4fc7-ab0e-f00f49aa4fb6', 'rel': 'bookmark'}]}, {'uuid': '617e7fba-539e-455f-a2c3-8e2d87ec9bd1', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/617e7fba-539e-455f-a2c3-8e2d87ec9bd1', 'rel': 'self'}, {'href': 'http://localhost/nodes/617e7fba-539e-455f-a2c3-8e2d87ec9bd1', '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=617e7fba-539e-455f-a2c3-8e2d87ec9bd1'} GET: /v1/nodes?instance_uuid=01d367a1-4987-4046-a7df-92f68ed14a26 {} GOT:{'nodes': [{'uuid': '03983d09-150f-41f4-ac87-6c5ec79407fa', 'instance_uuid': '01d367a1-4987-4046-a7df-92f68ed14a26', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/03983d09-150f-41f4-ac87-6c5ec79407fa', 'rel': 'self'}, {'href': 'http://localhost/nodes/03983d09-150f-41f4-ac87-6c5ec79407fa', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:31:49.516960+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-63a42875-e450-445d-8eb2-9c068b7c783d X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-68c65d25-cf05-4339-a7df-4f1527478aee 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 {} 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_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_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_driver.TestListDrivers.test_raid_logical_disk_properties ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties ... ok ironic.tests.unit.api.controllers.v1.test_node.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.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_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_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.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_delete_trait_fails_if_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.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_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.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_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported ironic.tests.unit.api.controllers.v1.test_driver.TestListDrivers.test_raid_logical_disk_properties_iface_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one ironic.tests.unit.api.controllers.v1.test_deploy_template.TestListDeployTemplates.test_one ... 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_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.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_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_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_event.TestEventValidator.test_event_missing_madatory_field ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_event_missing_madatory_field ... ok GOT:{'deploy_templates': [{'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/08b73fd4-371a-4c15-995d-d883de23d7cd', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/08b73fd4-371a-4c15-995d-d883de23d7cd', 'rel': 'bookmark'}]}, {'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/4dae9661-6933-46b0-ab08-238697e9c7bf', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4dae9661-6933-46b0-ab08-238697e9c7bf', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/deploy_templates?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=4dae9661-6933-46b0-ab08-238697e9c7bf'} GET: /v1/deploy_templates/59d5f1ad-34e9-4136-a882-df2d7fded695?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a1a7ba9a-681f-4182-8197-107cde2c5194 X-Openstack-Ironic-Api-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/89af2d8a-2c0f-4748-9814-d1859ec2d2ca {} GOT:{'uuid': '89af2d8a-2c0f-4748-9814-d1859ec2d2ca', 'created_at': '2024-01-06T13:31:50.538902+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/89af2d8a-2c0f-4748-9814-d1859ec2d2ca', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/89af2d8a-2c0f-4748-9814-d1859ec2d2ca', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} GET: /v1/deploy_templates/474feaf0-18d5-443a-9d70-84d0baeef616?fields=name,steps {} GOT:{'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/474feaf0-18d5-443a-9d70-84d0baeef616', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/474feaf0-18d5-443a-9d70-84d0baeef616', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} GET: /v1/deploy_templates/bf95711d-8668-44c4-ab4d-c0f0563f1be1 {} 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/6329c8b0-f515-4eaf-996c-df8032b8c61d.json {} GOT:{'uuid': '6329c8b0-f515-4eaf-996c-df8032b8c61d', 'created_at': '2024-01-06T13:31:51.226666+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/6329c8b0-f515-4eaf-996c-df8032b8c61d', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/6329c8b0-f515-4eaf-996c-df8032b8c61d', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} GET: /v1/deploy_templates/0053e94f-dc1b-4c78-a295-1f46f3de149c {} GOT:{'uuid': '0053e94f-dc1b-4c78-a295-1f46f3de149c', 'created_at': '2024-01-06T13:31:51.497867+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/0053e94f-dc1b-4c78-a295-1f46f3de149c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/0053e94f-dc1b-4c78-a295-1f46f3de149c', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} GET: /v1/deploy_templates/51ad4c77-f077-43d8-a535-6e8ce1f5a96c {} GOT:{'uuid': '51ad4c77-f077-43d8-a535-6e8ce1f5a96c', 'created_at': '2024-01-06T13:31:51.833599+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/51ad4c77-f077-43d8-a535-6e8ce1f5a96c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/51ad4c77-f077-43d8-a535-6e8ce1f5a96c', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} GET: /v1/deploy_templates/51ad4c77-f077-43d8-a535-6e8ce1f5a96c {} GOT:{'uuid': '51ad4c77-f077-43d8-a535-6e8ce1f5a96c', 'created_at': '2024-01-06T13:31:51.833599+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/51ad4c77-f077-43d8-a535-6e8ce1f5a96c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/51ad4c77-f077-43d8-a535-6e8ce1f5a96c', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} GET: /deploy_templates/51ad4c77-f077-43d8-a535-6e8ce1f5a96c {} GOT:{'uuid': '51ad4c77-f077-43d8-a535-6e8ce1f5a96c', 'created_at': '2024-01-06T13:31:51.833599+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/51ad4c77-f077-43d8-a535-6e8ce1f5a96c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/51ad4c77-f077-43d8-a535-6e8ce1f5a96c', 'rel': 'bookmark'}], 'steps': [{'interface': 'raid', 'step': 'create_configuration', 'args': {'logical_disks': []}, 'priority': 10}]} GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': 'eba6063f-7c3a-44b9-a19c-c89ad92cb844', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/eba6063f-7c3a-44b9-a19c-c89ad92cb844', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/eba6063f-7c3a-44b9-a19c-c89ad92cb844', 'rel': 'bookmark'}]}, {'uuid': '4bd94c2f-d96b-4e27-b8d9-b48b236a03cf', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/4bd94c2f-d96b-4e27-b8d9-b48b236a03cf', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4bd94c2f-d96b-4e27-b8d9-b48b236a03cf', 'rel': 'bookmark'}]}, {'uuid': 'b6c3d601-9bb4-4f72-a639-198e015a066e', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/b6c3d601-9bb4-4f72-a639-198e015a066e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/b6c3d601-9bb4-4f72-a639-198e015a066e', 'rel': 'bookmark'}]}, {'uuid': '31483b91-ce48-4bd8-9de6-b519f054f278', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/31483b91-ce48-4bd8-9de6-b519f054f278', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/31483b91-ce48-4bd8-9de6-b519f054f278', 'rel': 'bookmark'}]}, {'uuid': '3ad57bc5-c9fa-4b42-bf3f-96e44babd58d', 'name': 'CUSTOM_DT4', 'links': [{'href': 'http://localhost/v1/deploy_templates/3ad57bc5-c9fa-4b42-bf3f-96e44babd58d', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/3ad57bc5-c9fa-4b42-bf3f-96e44babd58d', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates {} GOT:{'deploy_templates': [{'uuid': 'f77216fa-a18d-48cb-930a-55a563a2d629', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/f77216fa-a18d-48cb-930a-55a563a2d629', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/f77216fa-a18d-48cb-930a-55a563a2d629', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates/71293611-d071-4672-a8c7-1c846c06e681 {} GOT:{'uuid': '71293611-d071-4672-a8c7-1c846c06e681', 'created_at': '2024-01-06T13:31:53.157605+00:00', 'updated_at': None, 'name': 'CUSTOM_DT1', 'extra': {}, 'links': [{'href': 'http://localhost/v1/deploy_templates/71293611-d071-4672-a8c7-1c846c06e681', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/71293611-d071-4672-a8c7-1c846c06e681', '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_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_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_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_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_node.TestTraits.test_get_all_traits_fails_with_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_get_all_traits_fails_with_node_not_found ... ok ironic.tests.unit.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.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_event.TestEventValidator.test_simple_event_type ironic.tests.unit.api.controllers.v1.test_event.TestEventValidator.test_simple_event_type ... ok GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:31:51.286333+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': '2024-01-06T13:31:51.779190+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-ddbb6280-b537-48c4-a7e2-b5e82af26b6b 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': 'becc17b2-7688-4e6e-aeb9-e7e88c0644c9', 'created_at': '2024-01-06T13:31:53.208630+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/becc17b2-7688-4e6e-aeb9-e7e88c0644c9', 'rel': 'self'}, {'href': 'http://localhost/nodes/becc17b2-7688-4e6e-aeb9-e7e88c0644c9', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/becc17b2-7688-4e6e-aeb9-e7e88c0644c9/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/becc17b2-7688-4e6e-aeb9-e7e88c0644c9/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/becc17b2-7688-4e6e-aeb9-e7e88c0644c9/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/becc17b2-7688-4e6e-aeb9-e7e88c0644c9/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/becc17b2-7688-4e6e-aeb9-e7e88c0644c9/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/becc17b2-7688-4e6e-aeb9-e7e88c0644c9/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/becc17b2-7688-4e6e-aeb9-e7e88c0644c9/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/becc17b2-7688-4e6e-aeb9-e7e88c0644c9/volume', 'rel': 'bookmark'}]}, {'uuid': '291298c4-e072-4e3e-a336-4227822391f5', 'created_at': '2024-01-06T13:31:53.238752+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/291298c4-e072-4e3e-a336-4227822391f5', 'rel': 'self'}, {'href': 'http://localhost/nodes/291298c4-e072-4e3e-a336-4227822391f5', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/291298c4-e072-4e3e-a336-4227822391f5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/291298c4-e072-4e3e-a336-4227822391f5/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/291298c4-e072-4e3e-a336-4227822391f5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/291298c4-e072-4e3e-a336-4227822391f5/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/291298c4-e072-4e3e-a336-4227822391f5/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/291298c4-e072-4e3e-a336-4227822391f5/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/291298c4-e072-4e3e-a336-4227822391f5/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/291298c4-e072-4e3e-a336-4227822391f5/volume', 'rel': 'bookmark'}]}, {'uuid': 'ca914b83-992f-45ca-b876-a6fe1aff3d0e', 'created_at': '2024-01-06T13:31:53.267207+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/ca914b83-992f-45ca-b876-a6fe1aff3d0e', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca914b83-992f-45ca-b876-a6fe1aff3d0e', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/ca914b83-992f-45ca-b876-a6fe1aff3d0e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca914b83-992f-45ca-b876-a6fe1aff3d0e/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ca914b83-992f-45ca-b876-a6fe1aff3d0e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca914b83-992f-45ca-b876-a6fe1aff3d0e/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ca914b83-992f-45ca-b876-a6fe1aff3d0e/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca914b83-992f-45ca-b876-a6fe1aff3d0e/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ca914b83-992f-45ca-b876-a6fe1aff3d0e/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca914b83-992f-45ca-b876-a6fe1aff3d0e/volume', 'rel': 'bookmark'}]}, {'uuid': '9d87f60d-35ff-4c0c-b7a4-9c855da0e357', 'created_at': '2024-01-06T13:31:53.287779+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/9d87f60d-35ff-4c0c-b7a4-9c855da0e357', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d87f60d-35ff-4c0c-b7a4-9c855da0e357', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/9d87f60d-35ff-4c0c-b7a4-9c855da0e357/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d87f60d-35ff-4c0c-b7a4-9c855da0e357/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/9d87f60d-35ff-4c0c-b7a4-9c855da0e357/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d87f60d-35ff-4c0c-b7a4-9c855da0e357/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/9d87f60d-35ff-4c0c-b7a4-9c855da0e357/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d87f60d-35ff-4c0c-b7a4-9c855da0e357/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/9d87f60d-35ff-4c0c-b7a4-9c855da0e357/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/9d87f60d-35ff-4c0c-b7a4-9c855da0e357/volume', 'rel': 'bookmark'}]}, {'uuid': 'b4df08fa-e41d-490f-9dc5-9a1891b1f9cf', 'created_at': '2024-01-06T13:31:53.312636+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/b4df08fa-e41d-490f-9dc5-9a1891b1f9cf', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4df08fa-e41d-490f-9dc5-9a1891b1f9cf', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/b4df08fa-e41d-490f-9dc5-9a1891b1f9cf/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4df08fa-e41d-490f-9dc5-9a1891b1f9cf/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b4df08fa-e41d-490f-9dc5-9a1891b1f9cf/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4df08fa-e41d-490f-9dc5-9a1891b1f9cf/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/b4df08fa-e41d-490f-9dc5-9a1891b1f9cf/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4df08fa-e41d-490f-9dc5-9a1891b1f9cf/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/b4df08fa-e41d-490f-9dc5-9a1891b1f9cf/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/b4df08fa-e41d-490f-9dc5-9a1891b1f9cf/volume', 'rel': 'bookmark'}]}, {'uuid': 'd009fcdb-8c77-4538-ace8-e3706da7c907', 'created_at': '2024-01-06T13:31:53.337445+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/d009fcdb-8c77-4538-ace8-e3706da7c907', 'rel': 'self'}, {'href': 'http://localhost/nodes/d009fcdb-8c77-4538-ace8-e3706da7c907', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/d009fcdb-8c77-4538-ace8-e3706da7c907/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/d009fcdb-8c77-4538-ace8-e3706da7c907/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/d009fcdb-8c77-4538-ace8-e3706da7c907/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/d009fcdb-8c77-4538-ace8-e3706da7c907/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/d009fcdb-8c77-4538-ace8-e3706da7c907/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/d009fcdb-8c77-4538-ace8-e3706da7c907/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/d009fcdb-8c77-4538-ace8-e3706da7c907/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/d009fcdb-8c77-4538-ace8-e3706da7c907/volume', 'rel': 'bookmark'}]}]}ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden_no_project ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_list_all_forbidden_no_project ... ok ironic.tests.unit.api.controllers.v1.test_node.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_event.TestPost.test_events ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events ... 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.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_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.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: 204 No Content Location: http://localhost/v1/nodes/node-39/traits/CUSTOM_3 Openstack-Request-Id: req-903b0f92-ad51-4cc5-aef4-a996fdca2296 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-1d82f976-ba82-44ea-a0b0-6ad2894ac562 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d7b93f56-c6f3-4352-8e18-7e2e5e7bad82 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits/CUSTOM_3 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-64cbd5c9-72a5-4cb8-b753-db55afbdcbe5 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 Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} PUT: /v1/nodes/node-39/traits/bad_trait {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3afcced7-bd6f-4d24-abdb-94f7d94398e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for trait: 'bad_trait' is not valid under any of the given schemas. Possible root cause: 'bad_trait' does not match '^CUSTOM_[A-Z0-9_]+$'\", \"debuginfo\": null}"} PUT: /v1/nodes/node-39/traits/CUSTOM_TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-da364f44-bb94-46eb-ad8d-61f7090fa889 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-b93d9db4-b8e0-4f3b-bb7b-0230a3b252e1 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-e1e33ad8-5a55-43e6-819d-705111a54080 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-2d951b30-841b-47d3-a268-0dca8aa8af5e 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-e902064a-95bd-4720-994d-9b405f029832 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-a9857087-e587-4924-aac1-6f7f32fc5171 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host host1, please retry after the current operation is completed.\", \"debuginfo\": null}"} DELETE: /v1/nodes/node-39/traits/CUSTOM_1 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b76e0150-3ecd-4be5-a0ef-daf4871fe41e 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 Content-Type: application/json Openstack-Request-Id: req-d2e76af2-a78c-4740-97c8-f0fc1a856958 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 Content-Type: application/json Openstack-Request-Id: req-9db09196-8a3b-403d-ba23-414b32af8b0e 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 Content-Type: application/json Openstack-Request-Id: req-c9aa16cf-83a5-4669-b779-9cf5e9f9679a 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 Content-Type: application/json Openstack-Request-Id: req-29fc50fc-d7d4-436e-a45d-865668ba0504 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'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1d04d7da-719e-41cc-850e-042a2aaef012 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_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.TestListNodes.test_detail_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_sort_key_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_old_version ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_detail_old_version ... ok ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_events_unsupported_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.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_node.TestBIOS.test_get_all_bios_fails_with_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_all_bios_fails_with_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestTraits.test_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_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_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 GET: /v1/nodes/detail {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-767d5360-737d-4fca-bbfe-bd8a6f75dd18 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': '4ed3ad72-65f0-4eaa-86a0-2ad629ed0a76', 'created_at': '2024-01-06T13:31:54.896895+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/4ed3ad72-65f0-4eaa-86a0-2ad629ed0a76', 'rel': 'self'}, {'href': 'http://localhost/nodes/4ed3ad72-65f0-4eaa-86a0-2ad629ed0a76', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/4ed3ad72-65f0-4eaa-86a0-2ad629ed0a76/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4ed3ad72-65f0-4eaa-86a0-2ad629ed0a76/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/4ed3ad72-65f0-4eaa-86a0-2ad629ed0a76/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/4ed3ad72-65f0-4eaa-86a0-2ad629ed0a76/states', 'rel': 'bookmark'}]}, {'uuid': '2e0462b7-5d57-461f-8555-a7e3d874d57b', 'created_at': '2024-01-06T13:31:54.864821+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/2e0462b7-5d57-461f-8555-a7e3d874d57b', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e0462b7-5d57-461f-8555-a7e3d874d57b', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/2e0462b7-5d57-461f-8555-a7e3d874d57b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e0462b7-5d57-461f-8555-a7e3d874d57b/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/2e0462b7-5d57-461f-8555-a7e3d874d57b/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/2e0462b7-5d57-461f-8555-a7e3d874d57b/states', 'rel': 'bookmark'}]}, {'uuid': 'eafaa03a-2ac6-42b1-8fc0-dae73e8780bd', 'created_at': '2024-01-06T13:31:54.833871+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/eafaa03a-2ac6-42b1-8fc0-dae73e8780bd', 'rel': 'self'}, {'href': 'http://localhost/nodes/eafaa03a-2ac6-42b1-8fc0-dae73e8780bd', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/eafaa03a-2ac6-42b1-8fc0-dae73e8780bd/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/eafaa03a-2ac6-42b1-8fc0-dae73e8780bd/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/eafaa03a-2ac6-42b1-8fc0-dae73e8780bd/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/eafaa03a-2ac6-42b1-8fc0-dae73e8780bd/states', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?sort_key=resource_class {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3eab7d53-8b42-455f-9c00-06198939b3f6 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.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_event.TestPost.test_network_bind_port_events ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_bind_port_events ... ok ironic.tests.unit.api.controllers.v1.test_node.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.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.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_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.TestListNodes.test_detail_using_query_false_and_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_false_and_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.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.TestBIOS.test_get_bios_fields ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields_old_version ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_bios_fields_old_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_using_query_old_version ... ok GOT:{'deploy_templates': [{'uuid': '21e88979-20a7-4ebd-87bb-a938dc442d2b', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/21e88979-20a7-4ebd-87bb-a938dc442d2b', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/21e88979-20a7-4ebd-87bb-a938dc442d2b', 'rel': 'bookmark'}]}, {'uuid': '4fd7c7fd-5379-440c-98f7-de3ac694a45e', 'name': 'CUSTOM_DT0', 'links': [{'href': 'http://localhost/v1/deploy_templates/4fd7c7fd-5379-440c-98f7-de3ac694a45e', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/4fd7c7fd-5379-440c-98f7-de3ac694a45e', 'rel': 'bookmark'}]}, {'uuid': '9694a5b0-48ba-4e63-96a2-c5962538094c', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/9694a5b0-48ba-4e63-96a2-c5962538094c', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/9694a5b0-48ba-4e63-96a2-c5962538094c', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates?sort_key=name&detail=False {} GOT:{'deploy_templates': [{'uuid': 'e723ee8f-c72e-4547-b829-a6ac347d0ccb', 'name': 'CUSTOM_DT1', 'links': [{'href': 'http://localhost/v1/deploy_templates/e723ee8f-c72e-4547-b829-a6ac347d0ccb', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/e723ee8f-c72e-4547-b829-a6ac347d0ccb', 'rel': 'bookmark'}]}, {'uuid': '920d6c20-27cd-4cd3-a428-762e529912a7', 'name': 'CUSTOM_DT2', 'links': [{'href': 'http://localhost/v1/deploy_templates/920d6c20-27cd-4cd3-a428-762e529912a7', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/920d6c20-27cd-4cd3-a428-762e529912a7', 'rel': 'bookmark'}]}, {'uuid': 'd863c461-a036-4ba0-a3b8-c17e725895c9', 'name': 'CUSTOM_DT3', 'links': [{'href': 'http://localhost/v1/deploy_templates/d863c461-a036-4ba0-a3b8-c17e725895c9', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/d863c461-a036-4ba0-a3b8-c17e725895c9', 'rel': 'bookmark'}]}]} GET: /v1/deploy_templates?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-aade3d1c-b290-41ba-b39e-47ed8f456556 X-Openstack-Ironic-Api-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 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f9bb8edf-aa85-4fae-af31-ad022d6342d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/deploy_templates?sort_key=steps {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7d524eab-4710-4e3b-8a1f-a669d6899af7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value steps is an invalid field for sorting\", \"debuginfo\": null}"} POST: /v1/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-205c5631-fe87-4959-9c9b-c1bac8c026c3 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-ca691ea4-003a-47d3-b7d1-3131bb35dc33 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'event' is a required property\", \"debuginfo\": null}"} POST: /v1/events {'events': [{'event': 'invalid.event'}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c7e8de68-fa5d-40ed-b023-ce4c884a0407 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-699a7e70-6753-430c-bfd4-84335d1ef662 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-d95351fb-4aca-4a26-92fb-d59327602859 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-675d5ae1-6e51-485c-94f2-5ff3608e9c2b 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'}]} GOT:Response: 204 No Content Openstack-Request-Id: req-901104d3-a6f4-4751-8a87-e6226f9466a2 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'}]} 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_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_event.TestPost.test_network_port_event_invalid_binding_vnic_type ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_binding_vnic_type ... ok ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios ... ok ironic.tests.unit.api.controllers.v1.test_event.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_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_node.TestListNodes.test_detail_with_association_filter ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_detail_with_association_filter ... ok ironic.tests.unit.api.controllers.v1.test_node.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_event.TestPost.test_network_port_event_invalid_mac_address ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_port_event_invalid_mac_address ... ok ironic.tests.unit.api.controllers.v1.test_node.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_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_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 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-87f49c0c-bfa8-407d-9e35-60cc61d9333f 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-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 Openstack-Request-Id: req-3a3ffdb0-7d87-421f-826b-ada50b89aa06 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"} GET: /v1/drivers/fake-hardware-type/raid/logical_disk_properties {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-3b407f1b-9916-471c-9fcf-cf041c0a24e4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:{'bios': [{'created_at': '2024-01-06T13:31:54.474797+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-06T13:31:54.820027+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-bfa377e5-b7b4-49a0-8599-a81f55081a89 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.73 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios?detail=True {} GOT:{'bios': [{'created_at': '2024-01-06T13:31:55.779006+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-decb10c8-5f20-421e-8b6e-933e69cc99c1 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-06T13:31:56.520283+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-459ed3de-7b91-4eef-9fa1-1b3cb32c7e50 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-06T13:31:57.084434+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-16435e3a-60d7-48a9-877a-a44dbdd2116f 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}"} ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestBIOS.test_get_one_bios_fails_with_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_empty ... 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.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_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 /usr/lib/python3/dist-packages/jsonschema/validators.py:1074: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_not_list ... ok /usr/lib/python3/dist-packages/jsonschema/validators.py:1074: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) 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.TestListNodes.test_get_all_interface_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_all_interface_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.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_port.TestPatch.test_add_multi ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_multi ... ok /usr/lib/python3/dist-packages/jsonschema/validators.py:1074: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_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_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_event.TestPost.test_network_unknown_event_property ironic.tests.unit.api.controllers.v1.test_event.TestPost.test_network_unknown_event_property ... ok /usr/lib/python3/dist-packages/jsonschema/validators.py:1074: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_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_port.TestPatch.test_add_node_id ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_node_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_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_min_length_step_value ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_associated ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_automated_clean_fields ... ok /usr/lib/python3/dist-packages/jsonschema/validators.py:1074: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_interface ... ok 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_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_node.TestListNodes.test_get_boot_device ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device ... ok /usr/lib/python3/dist-packages/jsonschema/validators.py:1074: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key ironic.tests.unit.api.controllers.v1.test_node.TestCheckCleanSteps.test__check_clean_steps_step_missing_step_key ... ok /usr/lib/python3/dist-packages/jsonschema/validators.py:1074: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) 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.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_node.TestListNodes.test_get_boot_device_by_name ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_by_name ... 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.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_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 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-661e0a95-84ba-4f7c-b08d-b1f2dfa9760a 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-711499c5-aca2-4d6f-902f-2aa64e6db94a 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-f2de22dd-571c-4832-92e5-535cce76811d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': []} GOT:Response: 405 Method Not Allowed Allow: DELETE, GET, PATCH, POST Content-Type: application/json {"error_message": "{\"code\": 405, \"title\": \"Method Not Allowed\", \"description\": \"\"}"} PUT: /v1/nodes/node-39/traits {'traits': ['CUSTOM_3', 'BAD_TRAIT']} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-78f1c892-303d-4bc8-a3fc-603edeb2ec15 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-61487cb0-42cb-4cd2-9a7e-5d4ec62936f3 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-f62ab3fc-1686-4ec3-8b2e-a8f27fd36f2c 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-dbd02ebd-bc4f-4ed5-9552-ee520564c80f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.37 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-14802fa2-b911-457c-b386-48a002acacc9 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-06T13:31:57.700329+00:00", "updated_at": "2024-01-06T13:31:57.990673+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-3bb3ac76-e544-4206-87bc-6f760bcb25ff 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'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-97896460-f99d-49dd-8162-6dc8be89d277 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-06T13:31:58.569064+00:00", "updated_at": "2024-01-06T13:31:58.768729+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-8b2be8dd-2622-45f8-b5db-20f8eb72c36f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_uuid, physical_network, portgroup_uuid, pxe_enabled\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-58b8e3c1-17ad-4a74-96a6-7fca80d2d28a 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-06T13:31:59.364859+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 /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.TestPatch.test_add_physical_network_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_boot_device_iface_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_by_name_with_json ... ok ironic.tests.unit.api.controllers.v1.test_node.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.TestPatch.test_add_physical_network_upgrade ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_physical_network_upgrade ... ok ironic.tests.unit.api.controllers.v1.test_node.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__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_port.TestPatch.test_add_portgroup_uuid ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_add_portgroup_uuid ... ok GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:31:55.685779+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-9edd9b82-f895-458e-b13d-5074942472ec X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ce98c9e8-c6a8-4087-a958-394612e41240 X-Openstack-Ironic-Api-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': '5ae4f992-63dd-4004-ae45-2724c021a24c', 'created_at': '2024-01-06T13:31:57.191474+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': '6e537864-d6ae-490b-83ff-7b048def9687', '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/5ae4f992-63dd-4004-ae45-2724c021a24c', 'rel': 'self'}, {'href': 'http://localhost/nodes/5ae4f992-63dd-4004-ae45-2724c021a24c', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/5ae4f992-63dd-4004-ae45-2724c021a24c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/5ae4f992-63dd-4004-ae45-2724c021a24c/ports', 'rel': 'bookmark'}]}, {'uuid': '30609ede-311e-49d0-8c05-5f5473de5704', 'created_at': '2024-01-06T13:31:57.213506+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': '523518e0-96fc-4289-8530-07ea82644769', '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/30609ede-311e-49d0-8c05-5f5473de5704', 'rel': 'self'}, {'href': 'http://localhost/nodes/30609ede-311e-49d0-8c05-5f5473de5704', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/30609ede-311e-49d0-8c05-5f5473de5704/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/30609ede-311e-49d0-8c05-5f5473de5704/ports', 'rel': 'bookmark'}]}, {'uuid': 'd51373bf-ce14-4621-bede-9aa2be38be0e', 'created_at': '2024-01-06T13:31:57.237862+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': '2f084206-ddbd-4408-8311-a1194dc5974e', '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/d51373bf-ce14-4621-bede-9aa2be38be0e', 'rel': 'self'}, {'href': 'http://localhost/nodes/d51373bf-ce14-4621-bede-9aa2be38be0e', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/d51373bf-ce14-4621-bede-9aa2be38be0e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/d51373bf-ce14-4621-bede-9aa2be38be0e/ports', 'rel': 'bookmark'}]}, {'uuid': '4eac33d0-d792-4951-8580-4e0c74bd0ef0', 'created_at': '2024-01-06T13:31:57.266305+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': '1e799101-9d10-47c9-a418-a2ee3aea5bef', '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/4eac33d0-d792-4951-8580-4e0c74bd0ef0', 'rel': 'self'}, {'href': 'http://localhost/nodes/4eac33d0-d792-4951-8580-4e0c74bd0ef0', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/4eac33d0-d792-4951-8580-4e0c74bd0ef0/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4eac33d0-d792-4951-8580-4e0c74bd0ef0/ports', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?instance_uuid=b47664a5-39fc-4a4b-aebd-9e07a15e19c4 {} GOT:{'nodes': [{'uuid': '33a9c4a6-c68c-4622-b8e2-d5151cadaa1b', 'created_at': '2024-01-06T13:31:57.773681+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': 'b47664a5-39fc-4a4b-aebd-9e07a15e19c4', '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/33a9c4a6-c68c-4622-b8e2-d5151cadaa1b', 'rel': 'self'}, {'href': 'http://localhost/nodes/33a9c4a6-c68c-4622-b8e2-d5151cadaa1b', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/33a9c4a6-c68c-4622-b8e2-d5151cadaa1b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/33a9c4a6-c68c-4622-b8e2-d5151cadaa1b/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-568a535e-2815-489b-90ab-4075601bff14 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 Content-Type: application/json Openstack-Request-Id: req-1890aef4-484b-40da-9708-16d8e34c2e12 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} GET: /v1/nodes?fields=uuid,instance_info {} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_collection_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_maintenance_mode_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test__update_changed_fields_remove_chassis_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.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.TestDelete.test_delete_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.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_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_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.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_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_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-4fb5a605-a56f-4d15-9a98-67a32046d82f X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-e0e91ceb-f297-4e84-a49f-e28b8eb9ba34 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-99ed0849-f366-4963-820a-644da94776c0 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-265b774a-ea3f-4f40-a972-9b50129285ec X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c61bc03b-0b68-4dca-9c9b-dce84456c528 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-6bb5f9e2-de62-48c5-8de0-980151068bb4 X-Openstack-Ironic-Api-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-6c0f240e-2bc7-4c64-ac65-9f4960463136 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-acf6120c-9a61-4b41-99dc-9f7e5340df16 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for evts: 'port_id' is a required property\", \"debuginfo\": null}"} DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-faeba97b-4bb9-4aa7-a075-448c7afcf975 X-Openstack-Ironic-Api-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-291ad870-ef2d-4b74-ac9e-53d2b401a3ff 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-66efe4d0-2a4e-4121-9df0-80ebfe3057dd 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-1ffa6053-605b-4fd0-84f9-375310b48dac X-Openstack-Ironic-Api-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-aa252c3f-1c61-49d4-aa2a-965c2040d198 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-4fba4103-1e77-4ef1-8cfa-006786d8b9aa 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-dfa9b692-57ab-448a-89cd-b961e60cb811 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-505f3b9f-e6a1-4060-9a21-3d9db418db76 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} DELETE: /v1/nodes/foo GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8f9aedd3-bebd-49f0-9f29-63b1ee293b05 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}"} 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.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_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.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.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_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.TestDelete.test_delete_ports_subresource ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_conductor_group_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_ports_subresource_no_port_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_ok ... 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.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.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_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_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.TestDelete.test_delete_volume_connectors_subresource_no_connector_id ironic.tests.unit.api.controllers.v1.test_node.TestDelete.test_delete_volume_connectors_subresource_no_connector_id ... ok ironic.tests.unit.api.controllers.v1.test_node.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.TestPatch.test_add_root ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_root ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type ... ok ironic.tests.unit.api.controllers.v1.test_node.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_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.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_port.TestPatch.test_remove_local_link_connection_network_type_old_api ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_local_link_connection_network_type_old_api ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_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.TestPatch.test_add_state_in_cleaning ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_add_state_in_cleaning ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ccebc8a8-8866-4f6b-87de-ddc7ecb6d9b8 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-06T13:31:59.986762+00:00", "updated_at": "2024-01-06T13:32:00.173274+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-87529f6d-358b-439b-9ae5-373a5552ecfb 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 Content-Type: application/json Openstack-Request-Id: req-cefa828c-5a38-48ad-84d9-34aa06bb531f 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': '34b4af79-0693-419d-8b05-7e1c7b270ad1', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9cb55c54-4ac4-478b-9a96-4b693293ce4a 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-06T13:32:01.105976+00:00", "updated_at": "2024-01-06T13:32:01.341360+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": "34b4af79-0693-419d-8b05-7e1c7b270ad1"} 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-cd0c0e36-8a6f-4134-8cd0-bcc701773be5 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-06T13:32:01.700513+00:00", "updated_at": "2024-01-06T13:32:01.910914+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-82c55270-e511-4758-b038-07517435e911 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /foo. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_uuid, physical_network, portgroup_uuid, pxe_enabled\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': '', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3995e0a3-f0a6-4410-9b92-bc267ddb36c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 1234, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d464b310-ddbe-46db-a05d-40eadf472e73 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 1234 is not of type 'string', 'null'\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'ppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-58848747-b27a-4c58-b900-76bfbbe4459c X-Openstack-Ironic-Api-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/ffbb0ae9-b5f1-4941-a229-b407e68e47b9 [{'path': '/address', 'value': '00:00:00:00:00:00', 'op': 'replace'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f8cdff0c-2a92-49de-a92a-a53f40a36e72 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/62bc0725-9c94-4648-afe4-1547ca72c65b [{'path': '/local_link_connection/network_type', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ffcdf591-5af1-4607-9c9f-b569759aaa2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"uuid": "62bc0725-9c94-4648-afe4-1547ca72c65b", "created_at": "2024-01-06T13:32:04.096680+00:00", "updated_at": "2024-01-06T13:32:04.263105+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/62bc0725-9c94-4648-afe4-1547ca72c65b", "rel": "self"}, {"href": "http://localhost/ports/62bc0725-9c94-4648-afe4-1547ca72c65b", "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-78881aee-22df-453d-bbb4-9b74554352e8 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.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.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_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_node.TestListNodes.test_get_custom_fields_invalid_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_custom_fields_invalid_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_description_field ... ok 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-06T13:31:58.164221+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 Content-Type: application/json Openstack-Request-Id: req-236006e2-4453-43e9-94b4-99dac62322b9 X-Openstack-Ironic-Api-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-023cb40f-df66-4741-8fe6-bb538b56aeb9 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-06T13:32:02.159654+00:00", "updated_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-624dfff7-52bf-43de-808f-b2a8e9025408 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-06T13:32:02.893776+00:00", "updated_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-f42dded3-0129-464d-8cce-1470d7f5e756 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-06T13:32:03.687971+00:00", "updated_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-f63a04ad-dd83-4527-9b3b-0b31af566909 X-Openstack-Ironic-Api-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/a01fb2f0-7b51-433c-880a-001d5babbf29 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-36a3753a-b2e7-4dee-b07b-e2308b6c160a X-Openstack-Ironic-Api-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 a01fb2f0-7b51-433c-880a-001d5babbf29 can not be updated while a state transition is in progress.\", \"debuginfo\": null}"} PATCH: /v1/nodes/6bb0db18-4230-408e-9423-6cf0eb02dec6 [{'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_port.TestPatch.test_remove_multi ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_multi ... ok DELETE: /v1/nodes/foo GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7c97eca0-5b02-4e2a-9460-ed03075f5f06 X-Openstack-Ironic-Api-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-5030b040-2290-4f49-8720-60a2e693618f 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 Content-Type: application/json Openstack-Request-Id: req-dab7f605-b7ef-4dfa-b7f2-2f457fe7f62a X-Openstack-Ironic-Api-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-6771f832-4e4e-44d0-92b5-a03b9c45769c X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-18c4dddd-d6e1-45fb-b90e-52b76a7c4e2e X-Openstack-Ironic-Api-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 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0cc20b05-f935-4428-a763-2854b6ba4248 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8c0e0b4a-f341-4fc3-bd8e-0a98afb6b803 X-Openstack-Ironic-Api-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 {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'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-53d56d6f-0231-40d3-a8aa-44609aaaa261 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} 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'} 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_indicator_state ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state ... 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_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_node.TestPost.test_create_node_automated_clean_old_api_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_automated_clean_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_iface_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_iface_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_node.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_port.TestPatch.test_remove_non_existent_property_fail ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_non_existent_property_fail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_versioning ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_indicator_state_versioning ... ok ironic.tests.unit.api.controllers.v1.test_node.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.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_port.TestPatch.test_remove_physical_network ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-63a6b900-ab8d-4de1-b1ae-8fdb1ae11137 X-Openstack-Ironic-Api-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-06T13:32:05.884184+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-06T13:32:05.884184+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-ff0f1350-7e9f-4ebd-8385-b2b4434c7b18 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} 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_port.TestPatch.test_remove_physical_network_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_old_api_version ... ok GOT:{'nodes': [{'uuid': 'be46d28a-124b-483b-8186-17ae1f074efb', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/be46d28a-124b-483b-8186-17ae1f074efb', 'rel': 'self'}, {'href': 'http://localhost/nodes/be46d28a-124b-483b-8186-17ae1f074efb', 'rel': 'bookmark'}]}, {'uuid': 'c67e8df4-5d08-4a40-aaed-6afaf33e7c0c', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/c67e8df4-5d08-4a40-aaed-6afaf33e7c0c', 'rel': 'self'}, {'href': 'http://localhost/nodes/c67e8df4-5d08-4a40-aaed-6afaf33e7c0c', 'rel': 'bookmark'}]}, {'uuid': 'f50ca6a1-9f24-47a9-8615-c5def5c546e1', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'links': [{'href': 'http://localhost/v1/nodes/f50ca6a1-9f24-47a9-8615-c5def5c546e1', 'rel': 'self'}, {'href': 'http://localhost/nodes/f50ca6a1-9f24-47a9-8615-c5def5c546e1', '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': '17d599d0-59da-4b97-8817-08bf8cf5cd1a', 'power_state': None, 'target_power_state': None, 'provision_state': 'available', 'target_provision_state': None, 'last_error': None, 'maintenance': False, 'instance_uuid': 'df887356-9aaa-4969-8a16-408ca1e700af', 'traits': ['CUSTOM_RAID5', 'CUSTOM_TRAIT1'], 'resource_class': None, 'links': [{'href': 'http://localhost/v1/nodes/17d599d0-59da-4b97-8817-08bf8cf5cd1a', 'rel': 'self'}, {'href': 'http://localhost/nodes/17d599d0-59da-4b97-8817-08bf8cf5cd1a', 'rel': 'bookmark'}]}, {'uuid': '0be062f6-e1e4-474f-b96c-a2f8e44f133d', 'power_state': None, 'target_power_state': None, 'provision_state': 'available', 'target_provision_state': None, 'last_error': None, 'maintenance': False, 'instance_uuid': '59208f0f-13f6-4c09-8ec8-ba3c1c0c8c59', 'traits': ['CUSTOM_RAID5', 'CUSTOM_TRAIT1'], 'resource_class': None, 'links': [{'href': 'http://localhost/v1/nodes/0be062f6-e1e4-474f-b96c-a2f8e44f133d', 'rel': 'self'}, {'href': 'http://localhost/nodes/0be062f6-e1e4-474f-b96c-a2f8e44f133d', 'rel': 'bookmark'}]}, {'uuid': '320de309-a865-473d-a53b-3afcc30060ab', 'power_state': None, 'target_power_state': None, 'provision_state': 'available', 'target_provision_state': None, 'last_error': None, 'maintenance': False, 'instance_uuid': '332c1425-2640-4eae-b621-6e3dcdb90c06', 'traits': ['CUSTOM_RAID5', 'CUSTOM_TRAIT1'], 'resource_class': None, 'links': [{'href': 'http://localhost/v1/nodes/320de309-a865-473d-a53b-3afcc30060ab', 'rel': 'self'}, {'href': 'http://localhost/nodes/320de309-a865-473d-a53b-3afcc30060ab', 'rel': 'bookmark'}]}]} GET: /v1/nodes?fields=name&limit=2 {} GOT:{'nodes': [{'name': None, 'links': [{'href': 'http://localhost/v1/nodes/0a83257e-988d-4cec-b73b-3ff97c3c0a1b', 'rel': 'self'}, {'href': 'http://localhost/nodes/0a83257e-988d-4cec-b73b-3ff97c3c0a1b', 'rel': 'bookmark'}]}, {'name': None, 'links': [{'href': 'http://localhost/v1/nodes/d304196c-fcd2-4aeb-a121-5f524dfd0968', 'rel': 'self'}, {'href': 'http://localhost/nodes/d304196c-fcd2-4aeb-a121-5f524dfd0968', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes?sort_key=id&sort_dir=asc&fields=name&limit=2&marker=d304196c-fcd2-4aeb-a121-5f524dfd0968'} 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-d339c2e5-8df3-4c99-9caf-89ad7ec8fc6b 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 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e366fe26-9580-4def-aa1b-81a2910078b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} 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-70a1764c-6991-4743-8330-052388dcc5bf X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b2e59893-3da5-4443-bfd5-1d9b2411a7b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-20d61fa5-5ee9-4622-abf4-b006a3516f88 X-Openstack-Ironic-Api-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 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-88c8c935-b642-48b2-bb5f-b1e694d1fa90 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system {} GOT:{'state': 'on'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=lessee {} GOT:{'lessee': 'some-lucky-project', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=network_interface {} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_network_interface_fields_invalid_api_version ... ok ironic.tests.unit.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.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_port.TestPatch.test_remove_physical_network_upgrade ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_remove_physical_network_upgrade ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor ... ok ironic.tests.unit.api.controllers.v1.test_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_node.TestPatch.test_patch_add_name_reserved ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_add_name_reserved ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-20bc89f4-3ad0-4069-bac0-c0776a72a7b8 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': '0529a035-9f15-4919-a2d5-59b2466418d8', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'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 Content-Type: application/json Location: http://localhost/v1/nodes/0529a035-9f15-4919-a2d5-59b2466418d8 Openstack-Request-Id: req-9ea2457b-38d5-4659-9457-ddef1dbcab26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "0529a035-9f15-4919-a2d5-59b2466418d8", "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/0529a035-9f15-4919-a2d5-59b2466418d8", "rel": "self"}, {"href": "http://localhost/nodes/0529a035-9f15-4919-a2d5-59b2466418d8", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/0529a035-9f15-4919-a2d5-59b2466418d8/ports", "rel": "self"}, {"href": "http://localhost/nodes/0529a035-9f15-4919-a2d5-59b2466418d8/ports", "rel": "bookmark"}]} GET: /v1/nodes/0529a035-9f15-4919-a2d5-59b2466418d8 {} GOT:{'uuid': '0529a035-9f15-4919-a2d5-59b2466418d8', '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/0529a035-9f15-4919-a2d5-59b2466418d8', 'rel': 'self'}, {'href': 'http://localhost/nodes/0529a035-9f15-4919-a2d5-59b2466418d8', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/0529a035-9f15-4919-a2d5-59b2466418d8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0529a035-9f15-4919-a2d5-59b2466418d8/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-19494548-7671-4161-a8a3-83683a0a3cec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Chassis 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} ironic.tests.unit.api.controllers.v1.test_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_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_node.TestListNodes.test_get_nodes_by_conductor_group ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-af2b09da-2cf6-4395-a805-c866f30f28c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "6bb0db18-4230-408e-9423-6cf0eb02dec6", "created_at": "2024-01-06T13:32:05.485591+00:00", "updated_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/6bb0db18-4230-408e-9423-6cf0eb02dec6", "rel": "self"}, {"href": "http://localhost/nodes/6bb0db18-4230-408e-9423-6cf0eb02dec6", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6bb0db18-4230-408e-9423-6cf0eb02dec6/ports", "rel": "self"}, {"href": "http://localhost/nodes/6bb0db18-4230-408e-9423-6cf0eb02dec6/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-1a118560-d683-4681-934d-254b6159f626 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node deadbeef-0000-1111-2222-333333333333: Cannot change name to invalid name ''\", \"debuginfo\": null}"} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': ''}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-400cd538-a98c-4048-8222-71b00ba0170c X-Openstack-Ironic-Api-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-d06bcee3-795d-43fb-9d1e-f00d0e859eb1 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-7f90b9a3-7055-4676-919f-6a08101e1d60 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-06T13:32:07.510317+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "available", "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "self"}, {"href": "http://localhost/nodes/deadbeef-0000-1111-2222-333333333333", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/deadbeef-0000-1111-2222-333333333333/ports", "rel": "self"}, {"href": "http://localhost/nodes/deadbeef-0000-1111-2222-333333333333/ports", "rel": "bookmark"}]} PATCH: /v1/nodes/deadbeef-0000-1111-2222-333333333333 [{'path': '/name', 'op': 'add', 'value': 'maintenance'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b2379bb5-a7a0-4355-8538-2b161e02b2e2 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 Content-Type: application/json Openstack-Request-Id: req-38b5efd1-b954-4161-851e-8b4bdf3987df 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 Content-Type: application/json Openstack-Request-Id: req-82c2943b-1be7-485a-a647-482cc2f3e966 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 Content-Type: application/json Openstack-Request-Id: req-90f90fc5-b66c-40d7-a22d-ef5733f579e4 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 Content-Type: application/json Openstack-Request-Id: req-79966afb-2a03-462f-b56e-028efadfb6fe 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'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ac578202-438a-4cbe-841d-a83efc8075ff 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}"} 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_port.TestPatch.test_replace_local_link_connection ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_local_link_connection ... 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-9f3017b6-efa4-431d-a8d1-d15313be2c0e 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': '653151d8-58d9-408b-a09e-a2f9f7bcfa3c', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/653151d8-58d9-408b-a09e-a2f9f7bcfa3c', 'rel': 'self'}, {'href': 'http://localhost/nodes/653151d8-58d9-408b-a09e-a2f9f7bcfa3c', 'rel': 'bookmark'}]}, {'uuid': 'e195a77b-d0ad-468a-b5f5-7662cb243458', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/e195a77b-d0ad-468a-b5f5-7662cb243458', 'rel': 'self'}, {'href': 'http://localhost/nodes/e195a77b-d0ad-468a-b5f5-7662cb243458', 'rel': 'bookmark'}]}]} GET: /v1/nodes?conductor=fake.conductor {} GOT:{'nodes': [{'uuid': 'e195a77b-d0ad-468a-b5f5-7662cb243458', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/e195a77b-d0ad-468a-b5f5-7662cb243458', 'rel': 'self'}, {'href': 'http://localhost/nodes/e195a77b-d0ad-468a-b5f5-7662cb243458', 'rel': 'bookmark'}]}]} GET: /v1/nodes?conductor_group=group1 {} GOT:{'nodes': [{'uuid': 'af8761e7-91fe-4e35-bcd3-4361fc25a0bd', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/af8761e7-91fe-4e35-bcd3-4361fc25a0bd', 'rel': 'self'}, {'href': 'http://localhost/nodes/af8761e7-91fe-4e35-bcd3-4361fc25a0bd', 'rel': 'bookmark'}]}]} GET: /v1/nodes?conductor_group=group2 {} GOT:{'nodes': [{'uuid': '0c4f0ca0-72c1-431b-baa6-fd93f3b014b3', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/0c4f0ca0-72c1-431b-baa6-fd93f3b014b3', 'rel': 'self'}, {'href': 'http://localhost/nodes/0c4f0ca0-72c1-431b-baa6-fd93f3b014b3', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?conductor_group=group1 {} GOT:{'nodes': [{'uuid': 'af8761e7-91fe-4e35-bcd3-4361fc25a0bd', 'created_at': '2024-01-06T13:32:09.000795+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/af8761e7-91fe-4e35-bcd3-4361fc25a0bd', 'rel': 'self'}, {'href': 'http://localhost/nodes/af8761e7-91fe-4e35-bcd3-4361fc25a0bd', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/af8761e7-91fe-4e35-bcd3-4361fc25a0bd/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/af8761e7-91fe-4e35-bcd3-4361fc25a0bd/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/af8761e7-91fe-4e35-bcd3-4361fc25a0bd/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/af8761e7-91fe-4e35-bcd3-4361fc25a0bd/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/af8761e7-91fe-4e35-bcd3-4361fc25a0bd/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/af8761e7-91fe-4e35-bcd3-4361fc25a0bd/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/af8761e7-91fe-4e35-bcd3-4361fc25a0bd/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/af8761e7-91fe-4e35-bcd3-4361fc25a0bd/volume', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?conductor_group=group2 {} GOT:{'nodes': [{'uuid': '0c4f0ca0-72c1-431b-baa6-fd93f3b014b3', 'created_at': '2024-01-06T13:32:09.035828+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/0c4f0ca0-72c1-431b-baa6-fd93f3b014b3', 'rel': 'self'}, {'href': 'http://localhost/nodes/0c4f0ca0-72c1-431b-baa6-fd93f3b014b3', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/0c4f0ca0-72c1-431b-baa6-fd93f3b014b3/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0c4f0ca0-72c1-431b-baa6-fd93f3b014b3/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/0c4f0ca0-72c1-431b-baa6-fd93f3b014b3/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/0c4f0ca0-72c1-431b-baa6-fd93f3b014b3/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/0c4f0ca0-72c1-431b-baa6-fd93f3b014b3/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/0c4f0ca0-72c1-431b-baa6-fd93f3b014b3/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/0c4f0ca0-72c1-431b-baa6-fd93f3b014b3/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/0c4f0ca0-72c1-431b-baa6-fd93f3b014b3/volume', 'rel': 'bookmark'}]}]} GET: /v1/nodes?conductor_group=group1 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-17c838a7-994c-4dc0-bfa4-2b5c26874663 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.46\", \"debuginfo\": null}"} GET: /v1/nodes/detail?conductor_group=group1 {} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_group_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.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.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.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.TestListNodes.test_get_nodes_by_conductor_no_valid_host ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_no_valid_host ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_conductor_not_allowed ... ok GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7bb707d4-9ffa-4f37-8c88-b8cfae1c4f8b X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b0346400-9ee6-4276-8154-e65c692c9673 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for patch: 'address' is a required property\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba5615bc-ef9c-4cff-847a-5cb696a964eb 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-06T13:32:05.766524+00:00", "updated_at": "2024-01-06T13:32:05.961462+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-bb0e63b3-895a-4db3-b137-0a44a1a70ccf 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-06T13:32:05.766524+00:00", "updated_at": "2024-01-06T13:32:06.179237+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-e89f929b-c1fa-4f4f-be3b-e952a9e45bca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: address, extra, is_smartnic, local_link_connection, node_uuid, physical_network, portgroup_uuid, pxe_enabled\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/non-existent', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dd86f407-6719-411c-af0c-fb5c472e5095 X-Openstack-Ironic-Api-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'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9e79b704-e43f-4444-8f37-81b2cf6c2bf2 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-06T13:32:07.139857+00:00", "updated_at": "2024-01-06T13:32:07.362265+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-d11ff252-f44d-403b-91de-a67579d83304 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'op': 'remove'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7fd418ac-538e-4d6a-bb4d-e83cd2cab3f9 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-3612b5fa-b5d7-45d0-8421-f7f98459f3bf X-Openstack-Ironic-Api-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-fc07a529-6b3c-4bb1-8ac2-2e0f5ff28590 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/local_link_connection/switch_id', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-abd33312-f9f3-4b63-b9be-b27288d44f44 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-06T13:32:09.566041+00:00", "updated_at": "2024-01-06T13:32:09.757093+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 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 GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-3b7fd975-1124-4424-ab01-870ad61f958a 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-06T13:32:08.867458+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-06T13:32:08.867458+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-5859b247-fb2d-45e8-a35a-4b33056a868c 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-06T13:32:09.739489+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-06T13:32:09.739489+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-06T13:32:09.739489+00:00', 'updated_at': None, 'clean_step': {}, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}]} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'description': 'useful stuff', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_description ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_node_id ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-e8f1eb56-444c-4217-9a07-b63afdfd2491 X-Openstack-Ironic-Api-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-06T13:32:10.612055+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-06T13:32:10.612055+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_node.TestListNodes.test_get_nodes_by_description ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_description ... ok ironic.tests.unit.api.controllers.v1.test_node.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.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_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_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.TestListNodes.test_get_nodes_by_driver ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_driver ... ok ironic.tests.unit.api.controllers.v1.test_node.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.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_node.TestPost.test_create_node_doesnt_contain_id ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_doesnt_contain_id ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network ... ok ironic.tests.unit.api.controllers.v1.test_node.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_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 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0a6fcc80-b535-4a0b-ae23-65bf3e53ab49 X-Openstack-Ironic-Api-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 Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-f4e41b5d-2e1e-482e-a166-609fd052f936 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-06T13:32:11.843070+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-06T13:32:11.843070+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_port.TestPatch.test_replace_physical_network_upgrade ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_physical_network_upgrade ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_network_interface ... ok GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-a43e2240-b8e6-41c5-b88f-ea36f7b9c917 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 Content-Type: application/json Openstack-Request-Id: req-f149390d-a4a6-4ea2-950d-72b6d5515020 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 Content-Type: application/json Openstack-Request-Id: req-27e72fb2-9715-46aa-be3b-e67a3bdffeaf 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': 'b7d2a4bd-d43e-4e50-a2a7-564cec8bd65c', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/b7d2a4bd-d43e-4e50-a2a7-564cec8bd65c', 'rel': 'self'}, {'href': 'http://localhost/nodes/b7d2a4bd-d43e-4e50-a2a7-564cec8bd65c', 'rel': 'bookmark'}]}]} GET: /v1/nodes?description_contains=dog {} GOT:{'nodes': [{'uuid': '2c80e876-0d46-4444-982f-6357a9f666ff', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/2c80e876-0d46-4444-982f-6357a9f666ff', 'rel': 'self'}, {'href': 'http://localhost/nodes/2c80e876-0d46-4444-982f-6357a9f666ff', 'rel': 'bookmark'}]}]} GET: /v1/nodes?driver=ipmi {} GOT:{'nodes': [{'uuid': '00930c2d-07f6-4907-8ee5-64534f0c7c0d', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/00930c2d-07f6-4907-8ee5-64534f0c7c0d', 'rel': 'self'}, {'href': 'http://localhost/nodes/00930c2d-07f6-4907-8ee5-64534f0c7c0d', 'rel': 'bookmark'}]}]} GET: /v1/nodes?driver=fake-hardware {} GOT:{'nodes': [{'uuid': '2f0bca20-9244-4fdd-afc1-fa3b49aaa7c7', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/2f0bca20-9244-4fdd-afc1-fa3b49aaa7c7', 'rel': 'self'}, {'href': 'http://localhost/nodes/2f0bca20-9244-4fdd-afc1-fa3b49aaa7c7', 'rel': 'bookmark'}]}]} GET: /v1/nodes?driver=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-36481164-6cf0-450f-a0f0-c7ebf63899bb X-Openstack-Ironic-Api-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': '80fb9654-06fc-42bf-bfdc-c1b56dfee896', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/80fb9654-06fc-42bf-bfdc-c1b56dfee896', 'rel': 'self'}, {'href': 'http://localhost/nodes/80fb9654-06fc-42bf-bfdc-c1b56dfee896', 'rel': 'bookmark'}]}]} GET: /v1/nodes?fault=clean failure {} GOT:{'nodes': [{'uuid': 'e0e3ae86-37d8-416e-b80b-8241006f85e2', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/e0e3ae86-37d8-416e-b80b-8241006f85e2', 'rel': 'self'}, {'href': 'http://localhost/nodes/e0e3ae86-37d8-416e-b80b-8241006f85e2', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?fault=power failure {} GOT:{'nodes': [{'uuid': '80fb9654-06fc-42bf-bfdc-c1b56dfee896', 'created_at': '2024-01-06T13:32:12.302887+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/80fb9654-06fc-42bf-bfdc-c1b56dfee896', 'rel': 'self'}, {'href': 'http://localhost/nodes/80fb9654-06fc-42bf-bfdc-c1b56dfee896', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/80fb9654-06fc-42bf-bfdc-c1b56dfee896/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/80fb9654-06fc-42bf-bfdc-c1b56dfee896/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/80fb9654-06fc-42bf-bfdc-c1b56dfee896/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/80fb9654-06fc-42bf-bfdc-c1b56dfee896/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/80fb9654-06fc-42bf-bfdc-c1b56dfee896/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/80fb9654-06fc-42bf-bfdc-c1b56dfee896/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/80fb9654-06fc-42bf-bfdc-c1b56dfee896/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/80fb9654-06fc-42bf-bfdc-c1b56dfee896/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.TestPatch.test_patch_name_remove_ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_name_remove_ok ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_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.TestListNodes.test_get_nodes_by_fault_with_invalid_fault ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_fault_with_invalid_fault ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_resource_class ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_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_port.TestPatch.test_replace_portgroup_uuid_old_api ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_replace_portgroup_uuid_old_api ... ok ironic.tests.unit.api.controllers.v1.test_node.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 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-000293bd-6258-4ed4-887c-1a267650b3ce 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/b82a7011-0cca-4128-a2ef-986cace81a56 [{'path': '/allocation_uuid', 'op': 'replace', 'value': 'c2200ca7-d1ec-4770-882b-baa4f2847dbb'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f5232119-e3e4-4dd7-8f5b-947af59fcb33 X-Openstack-Ironic-Api-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/a81335d5-9f52-4e06-aaba-84c5b8e3ddba [{'path': '/allocation_uuid', 'op': 'replace', 'value': '87eeec6c-205c-4ec5-93f7-5b593a94a529'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bd0aa335-5111-468c-b76e-2da40f0b3653 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/110cfd8b-1d5f-4cd6-9363-0116efbe944a [{'path': '/conductor', 'op': 'replace', 'value': 'why care'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-996b7a2f-07c8-46b6-935d-15944a7db1fd 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/8be258fe-ca9c-4005-85ad-36f7db8266b1 [{'path': '/deploy_step', 'op': 'replace', 'value': 'deploy this'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-994cca39-600f-44ab-a61c-1e2f7424f8ec 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/27c41c64-df6a-48e8-9da8-d999d5e2bafd [{'path': '/name', 'op': 'replace', 'value': 'this-is-my-node'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-6a56d1d8-0bbe-4d7e-a362-8161ebbbaf38 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/790e76d0-889f-4b7f-95db-57f5186b9d43 [{'path': '/fault', 'op': 'replace', 'value': 'why care'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c7520673-99f9-4a3f-961c-f520ce72d652 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-2829efef-3a27-4839-9e97-a13133b7f79e 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-06T13:32:12.535845+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_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 POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'network_interface': 'neutron', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-8aa00e4d-bbe8-42fe-b02b-37f47f3316bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "clean_step": {}, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "inspection_finished_at": null, "inspection_started_at": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "name": null, "network_interface": "neutron", "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "reservation": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'clean_step': {}, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': 'neutron', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}]} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'resource_class': 'class2', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-038be1f5-1ff1-45a0-8df2-b740ce27bf2c 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-06T13:32:13.415058+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-06T13:32:13.415058+00:00', 'updated_at': None, 'clean_step': {}, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': 'flat', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'resource_class': 'class2', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}]} ironic.tests.unit.api.controllers.v1.test_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.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.TestPost.test_create_node_explicit_storage_interface ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_explicit_storage_interface ... ok ironic.tests.unit.api.controllers.v1.test_node.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.TestPost.test_create_node_invalid_bios_interface ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_bios_interface ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e90b4490-13ed-4fc3-8679-5ba826818358 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-06T13:32:10.179760+00:00", "updated_at": "2024-01-06T13:32:10.399718+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-573806f2-e2c3-4629-ade9-6f65c3836b04 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a5fd1003-7953-4f3d-a7cd-3b97efa66501 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-06T13:32:11.179459+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-6d184250-188c-4501-b9e4-1d4c9f984496 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/physical_network', 'value': 'physnet2', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-12f1b511-a332-4c79-b006-0b3d3df4e572 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-06T13:32:11.882671+00:00", "updated_at": "2024-01-06T13:32:12.069238+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-66a3059e-61d6-4ce4-bc1a-0d9a3b19918a 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 Content-Type: application/json Openstack-Request-Id: req-ad485dac-c6f7-46b1-aef0-012375bd5721 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': '7ad9ede5-50b7-4f5c-bb1d-58cf018cf80c', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd57f8d3-0190-487f-a863-9cb932da39b8 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-06T13:32:13.046782+00:00", "updated_at": "2024-01-06T13:32:13.254965+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": "7ad9ede5-50b7-4f5c-bb1d-58cf018cf80c"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/portgroup_uuid', 'value': '62d08c98-a750-423a-a6ea-253dd5a11840', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7e2c963e-e13d-4d85-ab8a-1b447a55cdf7 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': '9de692dc-b7cb-4a6a-aee1-0d2b7c707377', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-08fcc9b0-126d-486c-8575-f0f2e548c04d 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-06T13:32:13.863480+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': 'fd776049-9656-47d8-b879-c5b1be9240e2', 'op': 'remove'}, {'path': '/portgroup_uuid', 'value': '7a9ca552-17ca-42c1-b70f-db33aa4f57e4', '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 GOT:{'nodes': [{'uuid': 'e0e3ae86-37d8-416e-b80b-8241006f85e2', 'created_at': '2024-01-06T13:32:12.331932+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/e0e3ae86-37d8-416e-b80b-8241006f85e2', 'rel': 'self'}, {'href': 'http://localhost/nodes/e0e3ae86-37d8-416e-b80b-8241006f85e2', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/e0e3ae86-37d8-416e-b80b-8241006f85e2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e0e3ae86-37d8-416e-b80b-8241006f85e2/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e0e3ae86-37d8-416e-b80b-8241006f85e2/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e0e3ae86-37d8-416e-b80b-8241006f85e2/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e0e3ae86-37d8-416e-b80b-8241006f85e2/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e0e3ae86-37d8-416e-b80b-8241006f85e2/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e0e3ae86-37d8-416e-b80b-8241006f85e2/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e0e3ae86-37d8-416e-b80b-8241006f85e2/volume', 'rel': 'bookmark'}]}]} GET: /v1/nodes?fault=power failure {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e60504d6-7e6b-4680-afcc-b276d16a158c 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 Content-Type: application/json Openstack-Request-Id: req-8e0bea6e-d3fd-443c-ba8f-08f1b8ab5f31 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 Content-Type: application/json Openstack-Request-Id: req-be1196f6-a505-412d-8733-2d473aa21059 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 Content-Type: application/json Openstack-Request-Id: req-8cbb0d8d-13e5-494f-b2e0-105f00614073 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 Content-Type: application/json Openstack-Request-Id: req-ed06e19d-e939-4717-96fa-86a33ca757ee 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': 'ca0ea34f-0701-4028-bf01-32b764856aab', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/ca0ea34f-0701-4028-bf01-32b764856aab', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca0ea34f-0701-4028-bf01-32b764856aab', 'rel': 'bookmark'}]}]} GET: /v1/nodes?lessee=project2 {} GOT:{'nodes': [{'uuid': 'ad6f2fb7-ddd4-499f-b992-31007334ae38', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/ad6f2fb7-ddd4-499f-b992-31007334ae38', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad6f2fb7-ddd4-499f-b992-31007334ae38', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?lessee=project1 {} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_lessee ... ok ironic.tests.unit.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_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_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.TestPost.test_create_node_invalid_chassis ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_chassis ... ok ironic.tests.unit.api.controllers.v1.test_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 GOT:{'nodes': [{'uuid': 'ca0ea34f-0701-4028-bf01-32b764856aab', 'created_at': '2024-01-06T13:32:14.625298+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/ca0ea34f-0701-4028-bf01-32b764856aab', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca0ea34f-0701-4028-bf01-32b764856aab', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/ca0ea34f-0701-4028-bf01-32b764856aab/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca0ea34f-0701-4028-bf01-32b764856aab/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ca0ea34f-0701-4028-bf01-32b764856aab/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca0ea34f-0701-4028-bf01-32b764856aab/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ca0ea34f-0701-4028-bf01-32b764856aab/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca0ea34f-0701-4028-bf01-32b764856aab/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ca0ea34f-0701-4028-bf01-32b764856aab/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ca0ea34f-0701-4028-bf01-32b764856aab/volume', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?lessee=project2 {} GOT:{'nodes': [{'uuid': 'ad6f2fb7-ddd4-499f-b992-31007334ae38', 'created_at': '2024-01-06T13:32:14.655123+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/ad6f2fb7-ddd4-499f-b992-31007334ae38', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad6f2fb7-ddd4-499f-b992-31007334ae38', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/ad6f2fb7-ddd4-499f-b992-31007334ae38/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad6f2fb7-ddd4-499f-b992-31007334ae38/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/ad6f2fb7-ddd4-499f-b992-31007334ae38/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad6f2fb7-ddd4-499f-b992-31007334ae38/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/ad6f2fb7-ddd4-499f-b992-31007334ae38/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad6f2fb7-ddd4-499f-b992-31007334ae38/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/ad6f2fb7-ddd4-499f-b992-31007334ae38/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/ad6f2fb7-ddd4-499f-b992-31007334ae38/volume', 'rel': 'bookmark'}]}]} GET: /v1/nodes?lessee=project1 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-52b2fea4-49af-4425-a9a8-d96e202f462b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.64 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable. The minimal required API version should be 1.65\", \"debuginfo\": null}"} GET: /v1/nodes/detail?lessee=project1 {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-cf2b458d-fddd-4460-8066-77160997a99e 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': '3100e61b-c023-4a44-b129-e00f01215780', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/3100e61b-c023-4a44-b129-e00f01215780', 'rel': 'self'}, {'href': 'http://localhost/nodes/3100e61b-c023-4a44-b129-e00f01215780', 'rel': 'bookmark'}]}]} GET: /v1/nodes?owner=bob {} GOT:{'nodes': [{'uuid': 'fca64e08-2dc9-444d-ad3f-c88a4e19d9f8', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/fca64e08-2dc9-444d-ad3f-c88a4e19d9f8', 'rel': 'self'}, {'href': 'http://localhost/nodes/fca64e08-2dc9-444d-ad3f-c88a4e19d9f8', '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_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_node.TestListNodes.test_get_nodes_by_owner_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_owner_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_driver ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24104369-9b5a-41f8-8cb9-68f940cdec72 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-06T13:32:13.169369+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/951dc64b-aaae-4f7f-b451-017746f100af [{'path': '/description', 'value': 'foo', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-36450126-71a7-4924-930c-14ba8b11c095 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "951dc64b-aaae-4f7f-b451-017746f100af", "created_at": "2024-01-06T13:32:14.182317+00:00", "updated_at": null, "automated_clean": null, "bios_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/951dc64b-aaae-4f7f-b451-017746f100af", "rel": "self"}, {"href": "http://localhost/nodes/951dc64b-aaae-4f7f-b451-017746f100af", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/951dc64b-aaae-4f7f-b451-017746f100af/ports", "rel": "self"}, {"href": "http://localhost/nodes/951dc64b-aaae-4f7f-b451-017746f100af/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/951dc64b-aaae-4f7f-b451-017746f100af/states", "rel": "self"}, {"href": "http://localhost/nodes/951dc64b-aaae-4f7f-b451-017746f100af/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/951dc64b-aaae-4f7f-b451-017746f100af/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/951dc64b-aaae-4f7f-b451-017746f100af/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/951dc64b-aaae-4f7f-b451-017746f100af/volume", "rel": "self"}, {"href": "http://localhost/nodes/951dc64b-aaae-4f7f-b451-017746f100af/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/ae176d63-59a4-482f-8095-62c4b409f8b9 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-915f1b01-61ec-48cb-8c3e-b919f01b7091 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "ae176d63-59a4-482f-8095-62c4b409f8b9", "created_at": "2024-01-06T13:32:14.858707+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "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/ae176d63-59a4-482f-8095-62c4b409f8b9", "rel": "self"}, {"href": "http://localhost/nodes/ae176d63-59a4-482f-8095-62c4b409f8b9", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ae176d63-59a4-482f-8095-62c4b409f8b9/ports", "rel": "self"}, {"href": "http://localhost/nodes/ae176d63-59a4-482f-8095-62c4b409f8b9/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ae176d63-59a4-482f-8095-62c4b409f8b9/states", "rel": "self"}, {"href": "http://localhost/nodes/ae176d63-59a4-482f-8095-62c4b409f8b9/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/ae176d63-59a4-482f-8095-62c4b409f8b9/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/ae176d63-59a4-482f-8095-62c4b409f8b9/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/ae176d63-59a4-482f-8095-62c4b409f8b9/volume", "rel": "self"}, {"href": "http://localhost/nodes/ae176d63-59a4-482f-8095-62c4b409f8b9/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/8a690101-1849-41de-8cc0-d268b13691f1 [{'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_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_provision_state ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state ... ok POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'storage_interface': 'cinder', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-e9604bc3-29bc-44e2-a33f-772fa22d1233 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-9553eb2f-b8e7-4a23-abdf-9a46b379f149 X-Openstack-Ironic-Api-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-aff191f8-e454-4f74-9963-4302b2dd2a20 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d3104918-924a-4708-af29-aa1938883dbe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Fake Error\", \"debuginfo\": null}"} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_network_interface ... ok ironic.tests.unit.api.controllers.v1.test_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.TestListNodes.test_get_nodes_by_provision_state_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_nodes_by_provision_state_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_extra ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_generic_and_extra ... ok ironic.tests.unit.api.controllers.v1.test_node.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.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_node.TestPost.test_create_node_invalid_storage_interface ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_invalid_storage_interface ... ok GOT:{'nodes': [{'uuid': '3100e61b-c023-4a44-b129-e00f01215780', 'created_at': '2024-01-06T13:32:15.617257+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/3100e61b-c023-4a44-b129-e00f01215780', 'rel': 'self'}, {'href': 'http://localhost/nodes/3100e61b-c023-4a44-b129-e00f01215780', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/3100e61b-c023-4a44-b129-e00f01215780/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/3100e61b-c023-4a44-b129-e00f01215780/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/3100e61b-c023-4a44-b129-e00f01215780/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/3100e61b-c023-4a44-b129-e00f01215780/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/3100e61b-c023-4a44-b129-e00f01215780/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/3100e61b-c023-4a44-b129-e00f01215780/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/3100e61b-c023-4a44-b129-e00f01215780/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/3100e61b-c023-4a44-b129-e00f01215780/volume', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?owner=bob {} GOT:{'nodes': [{'uuid': 'fca64e08-2dc9-444d-ad3f-c88a4e19d9f8', 'created_at': '2024-01-06T13:32:15.646449+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/fca64e08-2dc9-444d-ad3f-c88a4e19d9f8', 'rel': 'self'}, {'href': 'http://localhost/nodes/fca64e08-2dc9-444d-ad3f-c88a4e19d9f8', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/fca64e08-2dc9-444d-ad3f-c88a4e19d9f8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/fca64e08-2dc9-444d-ad3f-c88a4e19d9f8/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/fca64e08-2dc9-444d-ad3f-c88a4e19d9f8/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/fca64e08-2dc9-444d-ad3f-c88a4e19d9f8/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/fca64e08-2dc9-444d-ad3f-c88a4e19d9f8/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/fca64e08-2dc9-444d-ad3f-c88a4e19d9f8/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/fca64e08-2dc9-444d-ad3f-c88a4e19d9f8/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/fca64e08-2dc9-444d-ad3f-c88a4e19d9f8/volume', 'rel': 'bookmark'}]}]} GET: /v1/nodes?owner=fred {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-2aaed7d1-87d3-45ca-a40a-d45e36d8e40f 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-6e1cc8f8-ee10-4d4c-8c23-96d997aa0e5b 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': 'c14c4e0c-4661-4c0a-b9df-bedc97318170', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/c14c4e0c-4661-4c0a-b9df-bedc97318170', 'rel': 'self'}, {'href': 'http://localhost/nodes/c14c4e0c-4661-4c0a-b9df-bedc97318170', 'rel': 'bookmark'}]}]} GET: /v1/nodes?provision_state=deploying {} GOT:{'nodes': [{'uuid': 'a57dcc9c-bfe3-4d79-919e-e8f16212adba', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'deploying', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/a57dcc9c-bfe3-4d79-919e-e8f16212adba', 'rel': 'self'}, {'href': 'http://localhost/nodes/a57dcc9c-bfe3-4d79-919e-e8f16212adba', 'rel': 'bookmark'}]}]} GET: /v1/nodes?provision_state=test {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5eceb18a-2073-4b8d-bf7b-8f1f430b34ab 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': '6e5cc021-4e07-41fe-9465-77b9d3229fdc', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/6e5cc021-4e07-41fe-9465-77b9d3229fdc', 'rel': 'self'}, {'href': 'http://localhost/nodes/6e5cc021-4e07-41fe-9465-77b9d3229fdc', 'rel': 'bookmark'}]}]} GET: /v1/nodes?resource_class=bar {} GOT:{'nodes': [{'uuid': '01b6bee8-636a-43db-89d4-bc6b13a7d152', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/01b6bee8-636a-43db-89d4-bc6b13a7d152', 'rel': 'self'}, {'href': 'http://localhost/nodes/01b6bee8-636a-43db-89d4-bc6b13a7d152', '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.TestPatch.test_update_in_inspecting_not_allowed ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_in_inspecting_not_allowed ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-14d6d929-1943-430d-8a14-4fd0b628efb0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "8a690101-1849-41de-8cc0-d268b13691f1", "created_at": "2024-01-06T13:32:15.749442+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "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/8a690101-1849-41de-8cc0-d268b13691f1", "rel": "self"}, {"href": "http://localhost/nodes/8a690101-1849-41de-8cc0-d268b13691f1", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8a690101-1849-41de-8cc0-d268b13691f1/ports", "rel": "self"}, {"href": "http://localhost/nodes/8a690101-1849-41de-8cc0-d268b13691f1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8a690101-1849-41de-8cc0-d268b13691f1/states", "rel": "self"}, {"href": "http://localhost/nodes/8a690101-1849-41de-8cc0-d268b13691f1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8a690101-1849-41de-8cc0-d268b13691f1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8a690101-1849-41de-8cc0-d268b13691f1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8a690101-1849-41de-8cc0-d268b13691f1/volume", "rel": "self"}, {"href": "http://localhost/nodes/8a690101-1849-41de-8cc0-d268b13691f1/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/95c892bb-5029-4e49-90d7-231f9e1996d3 [{'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-b6167857-c7c9-4681-9f02-bcb76e82d04f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "95c892bb-5029-4e49-90d7-231f9e1996d3", "created_at": "2024-01-06T13:32:16.734494+00:00", "updated_at": null, "automated_clean": null, "bios_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/95c892bb-5029-4e49-90d7-231f9e1996d3", "rel": "self"}, {"href": "http://localhost/nodes/95c892bb-5029-4e49-90d7-231f9e1996d3", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/95c892bb-5029-4e49-90d7-231f9e1996d3/ports", "rel": "self"}, {"href": "http://localhost/nodes/95c892bb-5029-4e49-90d7-231f9e1996d3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/95c892bb-5029-4e49-90d7-231f9e1996d3/states", "rel": "self"}, {"href": "http://localhost/nodes/95c892bb-5029-4e49-90d7-231f9e1996d3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/95c892bb-5029-4e49-90d7-231f9e1996d3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/95c892bb-5029-4e49-90d7-231f9e1996d3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/95c892bb-5029-4e49-90d7-231f9e1996d3/volume", "rel": "self"}, {"href": "http://localhost/nodes/95c892bb-5029-4e49-90d7-231f9e1996d3/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/d06cf636-bff2-4a90-ac4c-58b2de699c3b [{'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_port.TestPatch.test_update_not_found ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_not_found ... 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-f846465a-b43d-4f3b-8a91-27efc727e3f4 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1599a4ce-0d9f-45b3-80ab-c596f3a7fa85 X-Openstack-Ironic-Api-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 Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-983e0328-212a-4aab-bd0b-5c93323522e7 X-Openstack-Ironic-Api-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-06T13:32:18.211647+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": "project", "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": null, "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee_old_api_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_lessee_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.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.TestPatch.test_update_port_address_normalized ironic.tests.unit.api.controllers.v1.test_port.TestPatch.test_update_port_address_normalized ... ok ironic.tests.unit.api.controllers.v1.test_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.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_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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2a529416-3a6f-4017-bed4-67ff7687514c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "d06cf636-bff2-4a90-ac4c-58b2de699c3b", "created_at": "2024-01-06T13:32:17.602964+00:00", "updated_at": null, "automated_clean": null, "bios_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/d06cf636-bff2-4a90-ac4c-58b2de699c3b", "rel": "self"}, {"href": "http://localhost/nodes/d06cf636-bff2-4a90-ac4c-58b2de699c3b", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d06cf636-bff2-4a90-ac4c-58b2de699c3b/ports", "rel": "self"}, {"href": "http://localhost/nodes/d06cf636-bff2-4a90-ac4c-58b2de699c3b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d06cf636-bff2-4a90-ac4c-58b2de699c3b/states", "rel": "self"}, {"href": "http://localhost/nodes/d06cf636-bff2-4a90-ac4c-58b2de699c3b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d06cf636-bff2-4a90-ac4c-58b2de699c3b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d06cf636-bff2-4a90-ac4c-58b2de699c3b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d06cf636-bff2-4a90-ac4c-58b2de699c3b/volume", "rel": "self"}, {"href": "http://localhost/nodes/d06cf636-bff2-4a90-ac4c-58b2de699c3b/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/f4f59934-fb8e-421a-85b1-fb100d8656c2 [{'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-e29027ee-b338-4c83-9070-27074eba74d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "f4f59934-fb8e-421a-85b1-fb100d8656c2", "created_at": "2024-01-06T13:32:18.511389+00:00", "updated_at": null, "automated_clean": null, "bios_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/f4f59934-fb8e-421a-85b1-fb100d8656c2", "rel": "self"}, {"href": "http://localhost/nodes/f4f59934-fb8e-421a-85b1-fb100d8656c2", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f4f59934-fb8e-421a-85b1-fb100d8656c2/ports", "rel": "self"}, {"href": "http://localhost/nodes/f4f59934-fb8e-421a-85b1-fb100d8656c2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f4f59934-fb8e-421a-85b1-fb100d8656c2/states", "rel": "self"}, {"href": "http://localhost/nodes/f4f59934-fb8e-421a-85b1-fb100d8656c2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f4f59934-fb8e-421a-85b1-fb100d8656c2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f4f59934-fb8e-421a-85b1-fb100d8656c2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f4f59934-fb8e-421a-85b1-fb100d8656c2/volume", "rel": "self"}, {"href": "http://localhost/nodes/f4f59934-fb8e-421a-85b1-fb100d8656c2/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/e36efd11-9b29-47e0-b6c6-6d6a6479411f [{'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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa1ddb07-2950-4edb-8f26-364a33f6d995 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-06T13:32:14.547857+00:00", "updated_at": "2024-01-06T13:32:14.774968+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": "7a9ca552-17ca-42c1-b70f-db33aa4f57e4"} 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-71352728-86ab-4071-a92e-c1dbb6eb16e3 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-06T13:32:15.139013+00:00", "updated_at": "2024-01-06T13:32:15.250911+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-81e0afd8-a0b9-4836-b61b-f391d896954a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'invalid-format', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-784d72b2-fec8-4bdc-b935-cf8561a83c02 X-Openstack-Ironic-Api-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'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c05cbe68-75a7-4f40-8ef7-9842719c63a7 X-Openstack-Ironic-Api-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 Openstack-Request-Id: req-49be053a-45e7-4fde-86ba-f2225f5e930e 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-06T13:32:16.763543+00:00", "updated_at": "2024-01-06T13:32:16.965367+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-6d0d3ae2-cf00-46ef-af0d-2a71dc9070e3 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-06T13:32:17.275734+00:00", "updated_at": "2024-01-06T13:32:17.490671+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-17b7ea64-ecc2-4638-bcb9-ce9c91926a2d 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/be624f60-d2cd-4139-8933-25fe7935b727 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-947a424e-b2ba-46dd-a089-ed7cf6302acd X-Openstack-Ironic-Api-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 be624f60-d2cd-4139-8933-25fe7935b727 could not be found.\", \"debuginfo\": null}"} PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b7e2a4e9-27d0-4227-97f7-29ea2e4ad767 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-06T13:32:18.804467+00:00", "updated_at": "2024-01-06T13:32:18.980906+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-95c82ad2-8241-4a64-a326-c0187fc06e36 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-06T13:32:19.267566+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_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_portgroup.TestDelete.test_delete_portgroup_byaddress ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byaddress ... 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_node.TestPatch.test_patch_policy_update_none ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_policy_update_none ... ok GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:18.211647+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-e973c36c-3bb1-4b75-b47a-ac7e46971880 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-faaa1cf4-3559-445a-8288-473d9af9f15c 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-a47c61c6-734e-4e99-8fdc-993fcde3c789 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface ... ok ironic.tests.unit.api.controllers.v1.test_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.TestPatch.test_patch_portgroups_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_portgroups_subresource ... ok GOT:{'nodes': [{'uuid': '81638e52-47d3-4e1f-889f-e0052bceb3ab', 'created_at': '2024-01-06T13:32:17.741538+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/81638e52-47d3-4e1f-889f-e0052bceb3ab', 'rel': 'self'}, {'href': 'http://localhost/nodes/81638e52-47d3-4e1f-889f-e0052bceb3ab', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/81638e52-47d3-4e1f-889f-e0052bceb3ab/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/81638e52-47d3-4e1f-889f-e0052bceb3ab/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/81638e52-47d3-4e1f-889f-e0052bceb3ab/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/81638e52-47d3-4e1f-889f-e0052bceb3ab/states', 'rel': 'bookmark'}]}]} GET: /v1/nodes/detail?resource_class=bar {} GOT:{'nodes': [{'uuid': 'b8b27a09-f32a-4b57-8809-4a92d878b0bc', 'created_at': '2024-01-06T13:32:17.764715+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/b8b27a09-f32a-4b57-8809-4a92d878b0bc', 'rel': 'self'}, {'href': 'http://localhost/nodes/b8b27a09-f32a-4b57-8809-4a92d878b0bc', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/b8b27a09-f32a-4b57-8809-4a92d878b0bc/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/b8b27a09-f32a-4b57-8809-4a92d878b0bc/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/b8b27a09-f32a-4b57-8809-4a92d878b0bc/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/b8b27a09-f32a-4b57-8809-4a92d878b0bc/states', 'rel': 'bookmark'}]}]} GET: /v1/nodes?resource_class=fake {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-afdd498d-66ff-4388-85f9-6ebdba6f4bcc X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b96dee11-49a0-4526-a84c-5f327b2a8f74 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0838cfd8-1c58-4b06-b7c4-3bce12951db1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-272b2aa9-d34f-4bb6-901a-7b0c084f4636 X-Openstack-Ironic-Api-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-06T13:32:20.277317+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.TestPost.test_create_node_network_interface_old_api_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_network_interface_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_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_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.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_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.TestListNodes.test_get_one_custom_fields_show_password ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_custom_fields_show_password ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_ports_subresource_no_port_id ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_byname_with_json ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-ddc45584-f5ae-4436-9b3f-8d161132e8b0 X-Openstack-Ironic-Api-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-06T13:32:20.311720+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-06T13:32:20.311720+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-48472207-138f-4695-a542-2d780d1875e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_chassis_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.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.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_invalid_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.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_portgroup.TestDelete.test_delete_portgroup_node_locked ironic.tests.unit.api.controllers.v1.test_portgroup.TestDelete.test_delete_portgroup_node_locked ... ok GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:20.665754+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-06T13:32:22.041593+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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-70f16b08-31e7-4493-9f5b-7f3049a9322e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "e36efd11-9b29-47e0-b6c6-6d6a6479411f", "created_at": "2024-01-06T13:32:19.201503+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/e36efd11-9b29-47e0-b6c6-6d6a6479411f", "rel": "self"}, {"href": "http://localhost/nodes/e36efd11-9b29-47e0-b6c6-6d6a6479411f", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/e36efd11-9b29-47e0-b6c6-6d6a6479411f/ports", "rel": "self"}, {"href": "http://localhost/nodes/e36efd11-9b29-47e0-b6c6-6d6a6479411f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/e36efd11-9b29-47e0-b6c6-6d6a6479411f/states", "rel": "self"}, {"href": "http://localhost/nodes/e36efd11-9b29-47e0-b6c6-6d6a6479411f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/e36efd11-9b29-47e0-b6c6-6d6a6479411f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/e36efd11-9b29-47e0-b6c6-6d6a6479411f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/e36efd11-9b29-47e0-b6c6-6d6a6479411f/volume", "rel": "self"}, {"href": "http://localhost/nodes/e36efd11-9b29-47e0-b6c6-6d6a6479411f/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/a408dc39-cae4-48d2-98c1-b58318c6e512 [] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0c889406-9aaa-45fc-ba90-e623ae8b8890 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "a408dc39-cae4-48d2-98c1-b58318c6e512", "created_at": "2024-01-06T13:32:19.976611+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/a408dc39-cae4-48d2-98c1-b58318c6e512", "rel": "self"}, {"href": "http://localhost/nodes/a408dc39-cae4-48d2-98c1-b58318c6e512", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a408dc39-cae4-48d2-98c1-b58318c6e512/ports", "rel": "self"}, {"href": "http://localhost/nodes/a408dc39-cae4-48d2-98c1-b58318c6e512/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a408dc39-cae4-48d2-98c1-b58318c6e512/states", "rel": "self"}, {"href": "http://localhost/nodes/a408dc39-cae4-48d2-98c1-b58318c6e512/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a408dc39-cae4-48d2-98c1-b58318c6e512/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a408dc39-cae4-48d2-98c1-b58318c6e512/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a408dc39-cae4-48d2-98c1-b58318c6e512/volume", "rel": "self"}, {"href": "http://localhost/nodes/a408dc39-cae4-48d2-98c1-b58318c6e512/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-82c27da3-f899-41b8-8abb-aa4e5eb301d1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/9bb50f13-0b8d-4ade-ad2d-d91fefdef9cc [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9f0d18cd-3dcb-4386-8d47-6434796aa31b X-Openstack-Ironic-Api-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'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d2cd1ea7-2031-4a1d-9adb-739a4607bc25 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-5df08291-253c-48d9-80e8-c5f6ec079131 X-Openstack-Ironic-Api-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 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.TestListNodes.test_get_one_with_json ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_json ... ok ironic.tests.unit.api.controllers.v1.test_node.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.TestPost.test_create_node_no_mandatory_field_driver ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_no_mandatory_field_driver ... ok ironic.tests.unit.api.controllers.v1.test_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.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_node.TestPatch.test_patch_volume_connectors_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_node_uuid ... ok GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:22.457563+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-06T13:32:23.005541+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-06T13:32:23.501628+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': None, 'boot_interface': None, 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': 'node.json', 'network_data': {}, 'network_interface': None, 'owner': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_no_agent_secret ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_one_with_no_agent_secret ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_patch_volume_connectors_subresource_no_connector_id ... ok ironic.tests.unit.api.controllers.v1.test_node.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_portgroup.TestPatch.test_add_root ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_add_root ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-895e1464-e1b3-4346-98d1-3cee46b78e17 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-06T13:32:21.687964+00:00", "updated_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 Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-061edaf2-cb30-46d7-b6fb-65871f806f49 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-06T13:32:22.643369+00:00", "updated_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-06T13:32:22.643369+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-f1b8b41a-091a-4052-b49c-cd31bd3a9a04 X-Openstack-Ironic-Api-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.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.controllers.v1.test_node.TestListNodes.test_get_owner_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_owner_fields ... ok ironic.tests.unit.api.controllers.v1.test_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.TestPost.test_create_node_owner_old_api_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_chassis_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_protected_fields ... ok GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-9409bb06-bd67-4d69-9dc2-9adf64a2ff3d 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}"} DELETE: /v1/portgroups/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 52:54:00:cf:2d:31\"}"} DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 204 No Content Openstack-Request-Id: req-db95c7bc-12a7-4980-b6af-f46ebe2de1d8 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-cc778a0e-aaa8-42ef-845b-2c46384b1ef9 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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a0c91455-9392-4f01-86fe-a59bccd54d17 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup blah could not be found.\", \"debuginfo\": null}"} DELETE: /v1/portgroups/pg.1.json GOT:Response: 204 No Content Openstack-Request-Id: req-064afa7c-ae9d-457e-9b16-5bd4f12977c0 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 GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} DELETE: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-a980824e-9724-44d1-a839-756940afa175 X-Openstack-Ironic-Api-Maximum-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/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a270413c-e25c-4a1e-b3fd-9d51b4992d11 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-06T13:32:22.966974+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-4430e217-f47d-4fcb-be9f-de204c079b71 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-906520fa-b385-4a11-aaff-955e5f594332 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-06T13:32:23.857478+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-a6b5f690-7a11-4fa4-9980-b77263bad1c0 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-06T13:32:24.245452+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-a48f712c-bd97-4a77-89aa-9035a20e89dc X-Openstack-Ironic-Api-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'}] ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_address ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_mode_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_retired_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_retired_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.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.TestListNodes.test_get_storage_interface_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_storage_interface_fields ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-cd0f1303-e389-4b34-9dac-4226aea4e431 X-Openstack-Ironic-Api-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-06T13:32:24.115369+00:00", "updated_at": null, "automated_clean": null, "bios_interface": "fake", "boot_interface": "fake", "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": "fake", "deploy_interface": "fake", "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": "fake", "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": "fake", "name": null, "network_data": {}, "network_interface": "flat", "owner": "cowsay", "power_interface": "fake", "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "enroll", "provision_updated_at": null, "raid_config": {}, "raid_interface": "fake", "rescue_interface": "fake", "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": "noop", "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": "fake", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:24.115369+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-c599d778-c595-4c61-8b63-d9be133969a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_recorded_project_scope ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_recorded_project_scope ... ok 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_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.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_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_node.TestListNodes.test_get_supported_boot_devices ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-3d97c5df-6f46-4aab-909d-82e22db2273e X-Openstack-Ironic-Api-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-06T13:32:25.670966+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-06T13:32:25.670966+00:00', 'updated_at': None, 'automated_clean': None, 'bios_interface': 'fake', 'boot_interface': 'fake', 'boot_mode': None, 'clean_step': {}, 'conductor_group': '', 'console_enabled': False, 'console_interface': 'fake', 'deploy_interface': 'fake', 'deploy_step': {}, 'description': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {}, 'extra': {}, 'fault': None, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': 'fake', 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'lessee': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': 'fake', 'name': None, 'network_data': {}, 'network_interface': 'flat', 'owner': 'ravensay', 'power_interface': 'fake', 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'protected': False, 'protected_reason': None, 'provision_state': 'enroll', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': 'fake', 'rescue_interface': 'fake', 'reservation': None, 'resource_class': None, 'retired': False, 'retired_reason': None, 'secure_boot': None, 'storage_interface': 'noop', 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': 'fake', 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'conductor': None, 'allocation_uuid': None, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'owner': 'catsay', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_system_scope ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_owner_system_scope ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_internal_field ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_boot_devices_iface_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_node.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.TestListNodes.test_get_supported_indicators ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_mandatory_field ... 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 GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-55fe46dd-0e44-4213-aace-3291c455aef2 X-Openstack-Ironic-Api-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-06T13:32:26.504708+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-06T13:32:26.504708+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-b97882e8-5984-41a2-bceb-8fd4f9681100 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-152071fe-9608-4632-a5ef-85d317640e4e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.10 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The word \\\"maintenance\\\" is reserved and can not be used as a node name. Reserved words are: maintenance, management, states, vendor_passthru, detail, validate.\", \"debuginfo\": null}"} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_remove_uuid ... ok GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:23.929305+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-06T13:32:24.308285+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-5f7753c8-f65a-4d4b-b22f-aefae1ad70fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:{'supported_boot_devices': ['pxe']} GET: /v1/nodes/spam/management/boot_device/supported {} GOT:{'supported_boot_devices': ['pxe']} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4b54fa06-a6fc-4864-b217-112c71de9e31 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} GOT:{'indicators': [{'name': 'led@chassis', 'component': 'chassis', 'readonly': True, 'states': ['OFF', 'ON'], 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_iface_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_iface_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_versioning ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_supported_indicators_versioning ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0de0833f-1f71-4ce9-8f77-5f8ef008d8cc 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 Content-Type: application/json Openstack-Request-Id: req-e51144b9-c4fc-45e3-bfff-66c801a1d309 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.5 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123: Cannot change name to invalid name 'Guido Van Error'\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f0767b6d-fd2c-4181-a2bb-08e06b4e2cce X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c5e63c08-bf21-451f-89a7-61ef8a943899 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1b89bed0-dd83-46ee-8e10-5308f90613b1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-6efbd0ea-218b-40a0-a099-a7542227e12d X-Openstack-Ironic-Api-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-e6998c36-9f87-4fe7-a344-f99525294629 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-06T13:32:25.387667+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-b3475de6-41fe-45bc-acdc-1a3468170ebf 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-1b732a9b-5dea-48f9-900b-c27c8b31d550 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-aca12f76-9fa4-4ce5-b2a2-bb6d6eef1c20 X-Openstack-Ironic-Api-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_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.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_address_already_exist ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_get_traits_fields ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_remove_ok ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_multi ... ok ironic.tests.unit.api.controllers.v1.test_node.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 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-7b26f63e-8697-4aa9-b4c4-604c8fa6b7f5 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-bad3058e-1c84-4cdf-bb1a-64b15a514f09 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-a499f9b8-b4a8-4c10-80df-b03fdbfc6521 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-39e2f442-a901-40f3-be77-e5de4a92a67e 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-1d33bce0-22d6-42d7-99e7-d82b143b2c4f 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.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_id ... ok ironic.tests.unit.api.controllers.v1.test_node.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.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.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_clean_step ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6b3898b4-329b-481f-a1d4-c7eb2ba75cf7 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-06T13:32:25.109309+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-9c87de54-3d35-425d-9d73-70d49282eaa9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"'mode' is a mandatory attribute and can not be removed\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo1', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b81ae60-e53b-456f-b716-b826a13b4167 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-06T13:32:25.884370+00:00", "updated_at": "2024-01-06T13:32:25.919714+00:00", "address": "52:54:00:cf:2d:31", "extra": {"foo2": "bar2", "foo3": "bar3"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-04e99809-07e4-4b5e-ae57-e80ec75a97c3 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-06T13:32:25.884370+00:00", "updated_at": "2024-01-06T13:32:25.919714+00:00", "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/node_id', 'op': 'remove'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-32452bdc-30c3-46e8-bc50-eec8ea56b9e7 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ca784010-cf0e-4d77-b7af-7f022ade8231 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b3c3e468-f8e7-4b97-a478-9f860a544296 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-97e49c25-84de-4d78-9ba0-71d7bafc4ee7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A port with MAC address aa:aa:aa:aa:aa:aa already exists.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/extra/foo1', 'value': 'bar1x', 'op': 'replace'}, {'path': '/extra/foo2', 'value': 'bar2x', 'op': 'replace'}, {'path': '/extra/foo3', 'value': 'bar3x', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0ba17b4d-a6ee-4c64-a0c5-f587feffa91c 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-06T13:32:28.835937+00:00", "updated_at": "2024-01-06T13:32:28.861182+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-7a12f0fc-2e59-4eed-a9cf-7da74585294f X-Openstack-Ironic-Api-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'}] ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_non_existent_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_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_portgroup.TestPatch.test_replace_singular ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_replace_singular ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-289e6024-f8b9-410d-86ad-17fae663addb X-Openstack-Ironic-Api-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-06T13:32:29.032097+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-06T13:32:29.032097+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-db73d348-c316-4d13-838b-899d901963b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'conductor_group': 'foo', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-63105827-088d-4149-8b9f-5278c6a488e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver test-driver does not support management (disabled or not implemented).\", \"debuginfo\": null}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} GOT:{'indicators': [{'name': 'led@chassis', 'component': 'chassis', 'readonly': True, 'states': ['OFF', 'ON'], 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@chassis', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} GOT:{'traits': [], 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?fields=traits {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5bee2d69-e4d7-41e5-a51a-e674e860461b 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': '6ba3b276-8334-4fb1-af1d-84c6fe79ad52'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:29.740700+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-06T13:32:29.740700+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-06T13:32:30.185545+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_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_portgroup.TestPatch.test_update_address_invalid_format ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_address_invalid_format ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_conductor_group_bad_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_driver_internal ... ok ironic.tests.unit.api.controllers.v1.test_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_node.TestListNodes.test_hide_fields_in_newer_versions_inspection ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_inspection ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_chassis_uuid ... ok ironic.tests.unit.api.controllers.v1.test_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 GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-74ae739c-b1af-4b68-b41c-95130a803f52 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-06T13:32:30.247561+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-06T13:32:30.247561+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-c75fcf8e-0fb9-4aea-b279-371e7c28475e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '555174f6-0ef0-4bd9-b62d-a87019a63c2c', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'boot_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} ironic.tests.unit.api.controllers.v1.test_node.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-c02d7f33c123', 'created_at': '2024-01-06T13:32:30.185545+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-06T13:32:30.725595+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-06T13:32:30.725595+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-06T13:32:31.204497+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-06T13:32:31.204497+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 GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c Openstack-Request-Id: req-4ad55e40-e864-411a-a724-480749164da8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "555174f6-0ef0-4bd9-b62d-a87019a63c2c", "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/555174f6-0ef0-4bd9-b62d-a87019a63c2c", "rel": "self"}, {"href": "http://localhost/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/ports", "rel": "self"}, {"href": "http://localhost/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/states", "rel": "self"}, {"href": "http://localhost/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/volume", "rel": "self"}, {"href": "http://localhost/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/volume", "rel": "bookmark"}]} GET: /v1/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c {} GOT:{'uuid': '555174f6-0ef0-4bd9-b62d-a87019a63c2c', '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/555174f6-0ef0-4bd9-b62d-a87019a63c2c', 'rel': 'self'}, {'href': 'http://localhost/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/555174f6-0ef0-4bd9-b62d-a87019a63c2c/volume', 'rel': 'bookmark'}]} POST: /v1/nodes {'uuid': '9a3a5686-f278-4f94-85c8-8e489cf14d3a', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'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/9a3a5686-f278-4f94-85c8-8e489cf14d3a Openstack-Request-Id: req-bcd8f1be-6287-4915-9c82-5e0866c7eeac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "9a3a5686-f278-4f94-85c8-8e489cf14d3a", "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/9a3a5686-f278-4f94-85c8-8e489cf14d3a", "rel": "self"}, {"href": "http://localhost/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/ports", "rel": "self"}, {"href": "http://localhost/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/states", "rel": "self"}, {"href": "http://localhost/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/volume", "rel": "self"}, {"href": "http://localhost/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/volume", "rel": "bookmark"}]} 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_node.TestPatch.test_replace_internal_field ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_internal_field ... ok ironic.tests.unit.api.controllers.v1.test_node.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 GET: /v1/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a {} GOT:{'uuid': '9a3a5686-f278-4f94-85c8-8e489cf14d3a', '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/9a3a5686-f278-4f94-85c8-8e489cf14d3a', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/9a3a5686-f278-4f94-85c8-8e489cf14d3a/volume', 'rel': 'bookmark'}]} POST: /v1/nodes {'uuid': '42a4043f-e0b3-4975-be95-92074a2f7b1f', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'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/42a4043f-e0b3-4975-be95-92074a2f7b1f Openstack-Request-Id: req-be9f6c6c-60b4-445b-a3ce-5f53227010c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "42a4043f-e0b3-4975-be95-92074a2f7b1f", "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/42a4043f-e0b3-4975-be95-92074a2f7b1f", "rel": "self"}, {"href": "http://localhost/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/ports", "rel": "self"}, {"href": "http://localhost/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/states", "rel": "self"}, {"href": "http://localhost/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/volume", "rel": "self"}, {"href": "http://localhost/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/volume", "rel": "bookmark"}]} GET: /v1/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f {} GOT:{'uuid': '42a4043f-e0b3-4975-be95-92074a2f7b1f', '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/42a4043f-e0b3-4975-be95-92074a2f7b1f', 'rel': 'self'}, {'href': 'http://localhost/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/42a4043f-e0b3-4975-be95-92074a2f7b1f/volume', 'rel': 'bookmark'}]} 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 GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:31.589242+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-06T13:32:31.589242+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-06T13:32:32.203815+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-06T13:32:32.203815+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-06T13:32:32.701973+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 POST: /v1/nodes {'uuid': 'a56d1baa-309c-4bc6-a515-a8bad15b83e1', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'inspect_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1 Openstack-Request-Id: req-0b0e2506-c036-44fc-b299-aafd52d67757 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "a56d1baa-309c-4bc6-a515-a8bad15b83e1", "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/a56d1baa-309c-4bc6-a515-a8bad15b83e1", "rel": "self"}, {"href": "http://localhost/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/ports", "rel": "self"}, {"href": "http://localhost/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/states", "rel": "self"}, {"href": "http://localhost/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/volume", "rel": "self"}, {"href": "http://localhost/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/volume", "rel": "bookmark"}]} GET: /v1/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1 {} GOT:{'uuid': 'a56d1baa-309c-4bc6-a515-a8bad15b83e1', '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/a56d1baa-309c-4bc6-a515-a8bad15b83e1', 'rel': 'self'}, {'href': 'http://localhost/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/a56d1baa-309c-4bc6-a515-a8bad15b83e1/volume', 'rel': 'bookmark'}]} POST: /v1/nodes {'uuid': '9669aa42-abcb-4219-87cd-df629e75ccb2', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cd025976-78e7-4f6d-827f-29592337a1b9 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-06T13:32:29.582466+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-4febc63b-18b3-45c0-9a83-27e9d0a82f9a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'aa:bb:cc:dd:ee:ff', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a2f4988-7e19-4538-a2db-7e1f4fcd4f61 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-06T13:32:30.372218+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 Content-Type: application/json Openstack-Request-Id: req-11ffe1e9-d04d-40a8-9537-f4e80502664d X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d5ff0753-10af-4ea4-97f5-7b36a2b21a8f 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-06T13:32:31.413754+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 {"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-26405ad8-e58e-4895-87cf-e10d880203da 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-06T13:32:32.055974+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-bc3ff194-a6ab-4de5-8c67-dc9134ad985c 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-06T13:32:32.550492+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {"foo": "bar"}, "internal_info": {"bar": "buzz"}, "mode": "active-backup", "name": "pg.1", "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/address', 'value': 'AA:BB:CC:DD:EE:FF', 'op': 'replace'}] ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_allowed ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ea50e190-a058-4c04-b5d2-6f555eebfbeb X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8c877111-7c2c-45a2-81bb-456fb3d00bdd 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-06T13:32:28.424321+00:00", "updated_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-3612584f-e8a0-491f-b9e7-641aa2ff93ea X-Openstack-Ironic-Api-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'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-802b5aec-194f-4f6d-b213-dc1cdb478e27 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-9be608ab-0b9c-4c33-9422-9b82ef89ef6e 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-06T13:32:31.061208+00:00", "updated_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-b1e26566-9e0f-4be4-a80b-2ff6769f69b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /console_enabled. Only the following can be updated: automated_clean, bios_interface, boot_interface, chassis_uuid, conductor_group, console_interface, deploy_interface, description, driver, driver_info, extra, inspect_interface, instance_info, instance_uuid, lessee, maintenance, management_interface, name, network_data, network_interface, owner, power_interface, properties, protected, protected_reason, raid_interface, rescue_interface, resource_class, retired, retired_reason, storage_interface, vendor_interface\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/power_state', 'op': 'replace', 'value': 'fake-state'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b2e9eb14-85e4-4350-8399-f12765c0dddf X-Openstack-Ironic-Api-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 GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2 Openstack-Request-Id: req-b93b07cf-23f1-49b6-85a4-c4fd92d2a63d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "9669aa42-abcb-4219-87cd-df629e75ccb2", "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/9669aa42-abcb-4219-87cd-df629e75ccb2", "rel": "self"}, {"href": "http://localhost/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/ports", "rel": "self"}, {"href": "http://localhost/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/states", "rel": "self"}, {"href": "http://localhost/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/volume", "rel": "self"}, {"href": "http://localhost/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/volume", "rel": "bookmark"}]} GET: /v1/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2 {} GOT:{'uuid': '9669aa42-abcb-4219-87cd-df629e75ccb2', '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/9669aa42-abcb-4219-87cd-df629e75ccb2', 'rel': 'self'}, {'href': 'http://localhost/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/9669aa42-abcb-4219-87cd-df629e75ccb2/volume', 'rel': 'bookmark'}]} POST: /v1/nodes {'uuid': '2074a0f8-cfe4-44c5-8c43-6573bffbc4f2', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'power_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2 Openstack-Request-Id: req-175534c1-f658-4f81-8085-c810a8358e06 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "2074a0f8-cfe4-44c5-8c43-6573bffbc4f2", "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/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2", "rel": "self"}, {"href": "http://localhost/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/ports", "rel": "self"}, {"href": "http://localhost/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/states", "rel": "self"}, {"href": "http://localhost/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/volume", "rel": "self"}, {"href": "http://localhost/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/volume", "rel": "bookmark"}]} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_in_inspecting_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_invalid_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_replace_maintenance_by_name ... ok GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:32.701973+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-06T13:32:33.125049+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-06T13:32:33.125049+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-06T13:32:33.698254+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 GET: /v1/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2 {} GOT:{'uuid': '2074a0f8-cfe4-44c5-8c43-6573bffbc4f2', '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/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2', 'rel': 'self'}, {'href': 'http://localhost/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/2074a0f8-cfe4-44c5-8c43-6573bffbc4f2/volume', 'rel': 'bookmark'}]} POST: /v1/nodes {'uuid': 'caebc10d-817f-4559-ae85-f9a1e815491c', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'raid_interface': 'fake', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/caebc10d-817f-4559-ae85-f9a1e815491c Openstack-Request-Id: req-4ed62ebd-79f5-46ee-b6fd-cbee49d67527 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "caebc10d-817f-4559-ae85-f9a1e815491c", "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/caebc10d-817f-4559-ae85-f9a1e815491c", "rel": "self"}, {"href": "http://localhost/nodes/caebc10d-817f-4559-ae85-f9a1e815491c", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/ports", "rel": "self"}, {"href": "http://localhost/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/states", "rel": "self"}, {"href": "http://localhost/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/volume", "rel": "self"}, {"href": "http://localhost/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/volume", "rel": "bookmark"}]} GET: /v1/nodes/caebc10d-817f-4559-ae85-f9a1e815491c {} GOT:{'uuid': 'caebc10d-817f-4559-ae85-f9a1e815491c', '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/caebc10d-817f-4559-ae85-f9a1e815491c', 'rel': 'self'}, {'href': 'http://localhost/nodes/caebc10d-817f-4559-ae85-f9a1e815491c', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/caebc10d-817f-4559-ae85-f9a1e815491c/volume', 'rel': 'bookmark'}]} 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 POST: /v1/nodes {'uuid': '4d8a033a-1bea-49dc-8ced-b4df8ae9cb26', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'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 Location: http://localhost/v1/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26 Openstack-Request-Id: req-f8625b7d-bec7-4c49-b86b-59efa49873ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "4d8a033a-1bea-49dc-8ced-b4df8ae9cb26", "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/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26", "rel": "self"}, {"href": "http://localhost/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/ports", "rel": "self"}, {"href": "http://localhost/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/states", "rel": "self"}, {"href": "http://localhost/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/volume", "rel": "self"}, {"href": "http://localhost/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/volume", "rel": "bookmark"}]} GET: /v1/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26 {} GOT:{'uuid': '4d8a033a-1bea-49dc-8ced-b4df8ae9cb26', '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/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26', 'rel': 'self'}, {'href': 'http://localhost/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/4d8a033a-1bea-49dc-8ced-b4df8ae9cb26/volume', 'rel': 'bookmark'}]} POST: /v1/nodes {'uuid': 'dcad128f-7887-49fe-be04-bbf7dcf98417', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': 'fakepass'}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'network_interface': 'flat', 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_hide_fields_in_newer_versions_traits ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_address_normalized ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417 Openstack-Request-Id: req-f3f4f17e-67bf-4c2d-8a6e-d32e1a68b8d6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "dcad128f-7887-49fe-be04-bbf7dcf98417", "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/dcad128f-7887-49fe-be04-bbf7dcf98417", "rel": "self"}, {"href": "http://localhost/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/ports", "rel": "self"}, {"href": "http://localhost/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/states", "rel": "self"}, {"href": "http://localhost/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/volume", "rel": "self"}, {"href": "http://localhost/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/volume", "rel": "bookmark"}]} GET: /v1/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417 {} GOT:{'uuid': 'dcad128f-7887-49fe-be04-bbf7dcf98417', '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/dcad128f-7887-49fe-be04-bbf7dcf98417', 'rel': 'self'}, {'href': 'http://localhost/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/dcad128f-7887-49fe-be04-bbf7dcf98417/volume', 'rel': 'bookmark'}]} POST: /v1/nodes {'uuid': '62c43cee-7b95-4219-8fb8-bde7de4e7ea3', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'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 Location: http://localhost/v1/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3 Openstack-Request-Id: req-9a737136-1ceb-4ed8-838a-f6a47300cf2c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "62c43cee-7b95-4219-8fb8-bde7de4e7ea3", "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/62c43cee-7b95-4219-8fb8-bde7de4e7ea3", "rel": "self"}, {"href": "http://localhost/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/ports", "rel": "self"}, {"href": "http://localhost/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/states", "rel": "self"}, {"href": "http://localhost/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/volume", "rel": "self"}, {"href": "http://localhost/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/volume", "rel": "bookmark"}]} 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_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:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:33.698254+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-06T13:32:34.158677+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-06T13:32:34.158677+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 GET: /v1/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3 {} GOT:{'uuid': '62c43cee-7b95-4219-8fb8-bde7de4e7ea3', '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/62c43cee-7b95-4219-8fb8-bde7de4e7ea3', 'rel': 'self'}, {'href': 'http://localhost/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/62c43cee-7b95-4219-8fb8-bde7de4e7ea3/volume', 'rel': 'bookmark'}]} POST: /v1/nodes {'uuid': '4a974b80-fa32-41e5-b236-3bb24c2e79bf', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'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 Location: http://localhost/v1/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf Openstack-Request-Id: req-bbdf6c44-b3e8-48c7-83be-b8a75428ed66 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "4a974b80-fa32-41e5-b236-3bb24c2e79bf", "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/4a974b80-fa32-41e5-b236-3bb24c2e79bf", "rel": "self"}, {"href": "http://localhost/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/ports", "rel": "self"}, {"href": "http://localhost/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/states", "rel": "self"}, {"href": "http://localhost/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/volume", "rel": "self"}, {"href": "http://localhost/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/volume", "rel": "bookmark"}]} GET: /v1/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf {} GOT:{'uuid': '4a974b80-fa32-41e5-b236-3bb24c2e79bf', '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/4a974b80-fa32-41e5-b236-3bb24c2e79bf', 'rel': 'self'}, {'href': 'http://localhost/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/4a974b80-fa32-41e5-b236-3bb24c2e79bf/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_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_portgroup.TestPatch.test_update_portgroup_mode_properties ironic.tests.unit.api.controllers.v1.test_portgroup.TestPatch.test_update_portgroup_mode_properties ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_links ... 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 GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:34.722066+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-06T13:32:34.722066+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/c2a28713-34a5-4eea-9fe8-fbf1eab52adf {} GOT:{'uuid': 'c2a28713-34a5-4eea-9fe8-fbf1eab52adf', 'created_at': '2024-01-06T13:32:35.206299+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/c2a28713-34a5-4eea-9fe8-fbf1eab52adf', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2a28713-34a5-4eea-9fe8-fbf1eab52adf', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/c2a28713-34a5-4eea-9fe8-fbf1eab52adf/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2a28713-34a5-4eea-9fe8-fbf1eab52adf/ports', 'rel': 'bookmark'}]} GET: /v1/nodes/c2a28713-34a5-4eea-9fe8-fbf1eab52adf {} GOT:{'uuid': 'c2a28713-34a5-4eea-9fe8-fbf1eab52adf', 'created_at': '2024-01-06T13:32:35.206299+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/c2a28713-34a5-4eea-9fe8-fbf1eab52adf', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2a28713-34a5-4eea-9fe8-fbf1eab52adf', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/c2a28713-34a5-4eea-9fe8-fbf1eab52adf/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2a28713-34a5-4eea-9fe8-fbf1eab52adf/ports', 'rel': 'bookmark'}]} GET: /nodes/c2a28713-34a5-4eea-9fe8-fbf1eab52adf {} GOT:{'uuid': 'c2a28713-34a5-4eea-9fe8-fbf1eab52adf', 'created_at': '2024-01-06T13:32:35.206299+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/c2a28713-34a5-4eea-9fe8-fbf1eab52adf', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2a28713-34a5-4eea-9fe8-fbf1eab52adf', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/c2a28713-34a5-4eea-9fe8-fbf1eab52adf/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c2a28713-34a5-4eea-9fe8-fbf1eab52adf/ports', 'rel': 'bookmark'}]} GET: /v1/nodes/b7e88438-e84d-4e30-8128-4cc55a9451a0 {} 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_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_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_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 POST: /v1/nodes {'uuid': '0aaac80e-552f-470d-a2ef-b6e4fcda5ce5', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'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/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5 Openstack-Request-Id: req-8a2001c5-43bb-4904-ab08-e2f814a6d0e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.40 {"uuid": "0aaac80e-552f-470d-a2ef-b6e4fcda5ce5", "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/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5", "rel": "self"}, {"href": "http://localhost/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/ports", "rel": "self"}, {"href": "http://localhost/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/states", "rel": "self"}, {"href": "http://localhost/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/volume", "rel": "self"}, {"href": "http://localhost/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/volume", "rel": "bookmark"}]} GET: /v1/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5 {} GOT:{'uuid': '0aaac80e-552f-470d-a2ef-b6e4fcda5ce5', '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/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5', 'rel': 'self'}, {'href': 'http://localhost/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5', 'rel': 'bookmark'}], 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66', 'ports': [{'href': 'http://localhost/v1/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/0aaac80e-552f-470d-a2ef-b6e4fcda5ce5/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-35ccc2bb-d96a-4591-8fba-f797e5551dc7 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-aa50ba3f-2a41-4057-9c67-f22d9fb76a33 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'} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e233edc7-7c53-4f78-b58d-4bb5777664f1 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-06T13:32:32.628224+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} PATCH: /v1/nodes/node-57.1 [{'path': '/maintenance', 'op': 'replace', 'value': True}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e5c8e412-d708-46d1-8bc9-b699bff0fd2a 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-06T13:32:33.400412+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-9d226a71-28da-4128-89e8-3cba3a3e972e X-Openstack-Ironic-Api-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'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-51b04025-e37f-4325-8af1-4e3c2ec0da51 X-Openstack-Ironic-Api-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/f5a0cf3f-77db-4164-8db8-5b8906bc0862 [{'path': '/boot_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b9f07958-3476-4ddb-8600-feb8fc2ce2d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "f5a0cf3f-77db-4164-8db8-5b8906bc0862", "created_at": "2024-01-06T13:32:35.725107+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/volume", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862 [{'path': '/console_interface', 'op': 'remove'}] 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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8eef7a54-d3d5-4b94-9a51-f3a4f292311e 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-06T13:32:33.027588+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-d6e63329-6c6a-4ee0-a05b-00765a2d9cb6 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-8687b47d-5be0-4ca3-84e8-4448ad3cd8bd X-Openstack-Ironic-Api-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/18d719db-9ea0-4fa1-bab8-54484db2a5a2 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-912c2f1f-4b72-41bd-9ca8-d96aa714520a X-Openstack-Ironic-Api-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 18d719db-9ea0-4fa1-bab8-54484db2a5a2 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-ed37034f-8c0f-4851-9d0d-9cfd1e1b6529 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-06T13:32:34.486806+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-6b842f24-9d76-41f0-89ac-5b6b1839f470 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /internal_info. Only the following can be updated: address, extra, mode, name, node_uuid, properties, standalone_ports_supported\", \"debuginfo\": null}"} PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'path': '/mode', 'value': '802.3ad', 'op': 'add'}, {'path': '/properties/bond_param', 'value': '100', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c38a2a31-77c5-44c1-8596-a60f7be412a2 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-06T13:32:35.195495+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-2f0109b7-0d98-45e8-bece-5403cda7b2af 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 Content-Type: application/json Openstack-Request-Id: req-7c8d5d52-91e2-472b-9019-dbe4281581c5 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'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-872ceaf3-136c-4147-b4e7-fdab36e5fdf6 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-06T13:32:36.109546+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\": \"\"}"} 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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-be16ba7d-26b8-4f93-b3f7-a9f40a81b241 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "f5a0cf3f-77db-4164-8db8-5b8906bc0862", "created_at": "2024-01-06T13:32:35.725107+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/volume", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862 [{'path': '/deploy_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-464bf159-bf59-4cb1-aa0a-9ec0c6980a65 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "f5a0cf3f-77db-4164-8db8-5b8906bc0862", "created_at": "2024-01-06T13:32:35.725107+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/volume", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862 [{'path': '/inspect_interface', 'op': 'remove'}] ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_maintenance_nodes_error ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_address_already_exist ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bcba2af0-828d-46a3-bf6c-b0ecae4b45af X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "f5a0cf3f-77db-4164-8db8-5b8906bc0862", "created_at": "2024-01-06T13:32:35.725107+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/volume", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862 [{'path': '/management_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bdc5b104-d17b-42b4-92f0-98a6f2d31030 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "f5a0cf3f-77db-4164-8db8-5b8906bc0862", "created_at": "2024-01-06T13:32:35.725107+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/volume", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862 [{'path': '/power_interface', 'op': 'remove'}] 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 GOT:{'uuid': 'b7e88438-e84d-4e30-8128-4cc55a9451a0', 'created_at': '2024-01-06T13:32:35.647012+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/b7e88438-e84d-4e30-8128-4cc55a9451a0', 'rel': 'self'}, {'href': 'http://foo/nodes/b7e88438-e84d-4e30-8128-4cc55a9451a0', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://foo/v1/nodes/b7e88438-e84d-4e30-8128-4cc55a9451a0/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/b7e88438-e84d-4e30-8128-4cc55a9451a0/ports', 'rel': 'bookmark'}]} GET: /v1/nodes/b7e88438-e84d-4e30-8128-4cc55a9451a0 {} GOT:{'uuid': 'b7e88438-e84d-4e30-8128-4cc55a9451a0', 'created_at': '2024-01-06T13:32:35.647012+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/b7e88438-e84d-4e30-8128-4cc55a9451a0', 'rel': 'self'}, {'href': 'http://foo/nodes/b7e88438-e84d-4e30-8128-4cc55a9451a0', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://foo/v1/nodes/b7e88438-e84d-4e30-8128-4cc55a9451a0/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/b7e88438-e84d-4e30-8128-4cc55a9451a0/ports', 'rel': 'bookmark'}]} GET: /nodes/b7e88438-e84d-4e30-8128-4cc55a9451a0 {} GOT:{'uuid': 'b7e88438-e84d-4e30-8128-4cc55a9451a0', 'created_at': '2024-01-06T13:32:35.647012+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/b7e88438-e84d-4e30-8128-4cc55a9451a0', 'rel': 'self'}, {'href': 'http://foo/nodes/b7e88438-e84d-4e30-8128-4cc55a9451a0', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://foo/v1/nodes/b7e88438-e84d-4e30-8128-4cc55a9451a0/ports', 'rel': 'self'}, {'href': 'http://foo/nodes/b7e88438-e84d-4e30-8128-4cc55a9451a0/ports', 'rel': 'bookmark'}]} GET: /v1/nodes?maintenance=true {} GOT:{'nodes': [{'uuid': 'ed1e7f0c-ad68-4f1a-b1b8-e764db8435ca', 'instance_uuid': None, 'maintenance': True, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/ed1e7f0c-ad68-4f1a-b1b8-e764db8435ca', 'rel': 'self'}, {'href': 'http://localhost/nodes/ed1e7f0c-ad68-4f1a-b1b8-e764db8435ca', 'rel': 'bookmark'}]}, {'uuid': 'fd52c5d2-ccdc-472d-8971-b69e8cbc8bc9', 'instance_uuid': None, 'maintenance': True, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/fd52c5d2-ccdc-472d-8971-b69e8cbc8bc9', 'rel': 'self'}, {'href': 'http://localhost/nodes/fd52c5d2-ccdc-472d-8971-b69e8cbc8bc9', 'rel': 'bookmark'}]}]} GET: /v1/nodes?maintenance=false {} GOT:{'nodes': [{'uuid': '447f42e7-2479-46ad-a552-96a809133d19', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/447f42e7-2479-46ad-a552-96a809133d19', 'rel': 'self'}, {'href': 'http://localhost/nodes/447f42e7-2479-46ad-a552-96a809133d19', 'rel': 'bookmark'}]}, {'uuid': 'fd380bef-05a8-4bca-b97c-043a9d99455a', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/fd380bef-05a8-4bca-b97c-043a9d99455a', 'rel': 'self'}, {'href': 'http://localhost/nodes/fd380bef-05a8-4bca-b97c-043a9d99455a', 'rel': 'bookmark'}]}, {'uuid': '1b472783-b81b-448d-9728-85f543d784ec', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/1b472783-b81b-448d-9728-85f543d784ec', 'rel': 'self'}, {'href': 'http://localhost/nodes/1b472783-b81b-448d-9728-85f543d784ec', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=true&maintenance=false {} GOT:{'nodes': [{'uuid': 'a31c876c-6393-478d-ad54-3d3a60d8f99f', 'instance_uuid': 'e61cc547-7209-4714-8b72-39d0fbf1f4d1', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/a31c876c-6393-478d-ad54-3d3a60d8f99f', 'rel': 'self'}, {'href': 'http://localhost/nodes/a31c876c-6393-478d-ad54-3d3a60d8f99f', 'rel': 'bookmark'}]}, {'uuid': '9c7447af-7303-425c-9c66-2e5452bbefcf', 'instance_uuid': '4e220063-87a2-4a5d-8dfa-0a0fdf326284', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/9c7447af-7303-425c-9c66-2e5452bbefcf', 'rel': 'self'}, {'href': 'http://localhost/nodes/9c7447af-7303-425c-9c66-2e5452bbefcf', 'rel': 'bookmark'}]}, {'uuid': '43426b7c-c1b2-47d1-ab82-024347fc5a92', 'instance_uuid': '6fa0b25b-2885-49d1-b39b-b4f055738243', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/43426b7c-c1b2-47d1-ab82-024347fc5a92', 'rel': 'self'}, {'href': 'http://localhost/nodes/43426b7c-c1b2-47d1-ab82-024347fc5a92', 'rel': 'bookmark'}]}, {'uuid': 'dc0fcb89-c5e6-4464-a6e1-d2e350b1705d', 'instance_uuid': '4a745a53-5df7-45d2-9f09-9ece29a0f15d', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/dc0fcb89-c5e6-4464-a6e1-d2e350b1705d', 'rel': 'self'}, {'href': 'http://localhost/nodes/dc0fcb89-c5e6-4464-a6e1-d2e350b1705d', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=true&maintenance=true {} GOT:{'nodes': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': '8a188257-f86a-4244-9d80-3591f2be8385', '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': '8a188257-f86a-4244-9d80-3591f2be8385', '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-920acdfb-bba6-4761-9dad-4cf858908555 X-Openstack-Ironic-Api-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 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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-252f8b60-7ec7-4ccc-a9bc-b5a84d0fadd5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "f5a0cf3f-77db-4164-8db8-5b8906bc0862", "created_at": "2024-01-06T13:32:35.725107+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/volume", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862 [{'path': '/raid_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0c6f1c58-f7da-41a9-96c4-299a4b38c287 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "f5a0cf3f-77db-4164-8db8-5b8906bc0862", "created_at": "2024-01-06T13:32:35.725107+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/volume", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862 [{'path': '/vendor_interface', 'op': 'remove'}] 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_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_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_node.TestListNodes.test_many_have_names ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_have_names ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_traits ... 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'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-3fa10b76-3d5c-4139-a713-55c69a9ce1ca 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 Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-9a4809cf-4b41-481d-ada7-797f2d9e182b 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-06T13:32:37.376894+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': '096d6c71-fd8b-499e-b80d-af91a5596f12', 'name': '2c1e52c8-7960-4e01-a135-fbced56ca2e9', 'address': 'AA:AA:AA:11:22:33', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-7bd6e83c-ae29-446a-bdf4-ae37825bca13 X-Openstack-Ironic-Api-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'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-00c02c9c-c38d-40a4-8287-88f4e807ac16 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-06T13:32:37.851045+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-06T13:32:37.851045+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 Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-81bb1c92-3893-4072-8225-7bc6d121fe3a 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-06T13:32:38.241165+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 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_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_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_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_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_node.TestListNodes.test_many_list_all_forbidden ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden ... ok ironic.tests.unit.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_node.TestListNodes.test_many_list_all_forbidden_no_project ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_many_list_all_forbidden_no_project ... ok ironic.tests.unit.api.controllers.v1.test_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 GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e95e6096-12e3-4b94-845f-531a80e08cfa 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-23bc89fe-8577-4654-9a3b-4436d1ccc54b 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-e91b0c40-ffb9-4679-a85d-4a62e1fabd8a 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-a23e28ec-99a7-4179-bafc-035b0e428076 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-e2bf42b7-4762-469f-a7c0-c417ae1230e7 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 Content-Type: application/json Openstack-Request-Id: req-d0759311-7b8b-431f-b68b-d0d515255e0c 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 Content-Type: application/json Openstack-Request-Id: req-55c6a19c-670c-43ad-930c-f30d7a5caed7 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-dd820450-ff7f-4b62-87e5-94336a19490a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/nodes {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'instance_uuid': None, 'instance_info': {'configdrive': 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQ=', 'image_url': 'http://example.com/test_image_url', 'foo': 'bar'}, 'driver': 'fake-hardware', 'driver_info': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'maintenance': False, 'console_enabled': False, 'extra': {}, 'chassis_uuid': 'e74c40e0-d825-11e2-a28f-0800200c9a66'} ironic.tests.unit.api.controllers.v1.test_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.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 GOT:{'nodes': [{'uuid': 'fab5e7ac-9573-4c88-ae48-d7d92113cb25', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/fab5e7ac-9573-4c88-ae48-d7d92113cb25', 'rel': 'self'}, {'href': 'http://localhost/nodes/fab5e7ac-9573-4c88-ae48-d7d92113cb25', 'rel': 'bookmark'}]}, {'uuid': '4f48d2be-067e-4c3e-aeac-720720e1ea3f', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/4f48d2be-067e-4c3e-aeac-720720e1ea3f', 'rel': 'self'}, {'href': 'http://localhost/nodes/4f48d2be-067e-4c3e-aeac-720720e1ea3f', 'rel': 'bookmark'}]}, {'uuid': '117fe50a-9e8a-45d8-9185-f8f10458c539', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/117fe50a-9e8a-45d8-9185-f8f10458c539', 'rel': 'self'}, {'href': 'http://localhost/nodes/117fe50a-9e8a-45d8-9185-f8f10458c539', 'rel': 'bookmark'}]}, {'uuid': '0913e0b0-3a2f-48c5-956b-e721969d5154', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/0913e0b0-3a2f-48c5-956b-e721969d5154', 'rel': 'self'}, {'href': 'http://localhost/nodes/0913e0b0-3a2f-48c5-956b-e721969d5154', 'rel': 'bookmark'}]}, {'uuid': '0b3a87bf-26ec-4062-bc4e-f4027e4bdc7c', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/0b3a87bf-26ec-4062-bc4e-f4027e4bdc7c', 'rel': 'self'}, {'href': 'http://localhost/nodes/0b3a87bf-26ec-4062-bc4e-f4027e4bdc7c', 'rel': 'bookmark'}]}]} GET: /v1/nodes {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-29c196cd-8248-48cd-97e8-dbfeaf22c6e8 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': '094e39a8-51c6-4db5-853e-47ffd9aed664', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-0', 'links': [{'href': 'http://localhost/v1/nodes/094e39a8-51c6-4db5-853e-47ffd9aed664', 'rel': 'self'}, {'href': 'http://localhost/nodes/094e39a8-51c6-4db5-853e-47ffd9aed664', 'rel': 'bookmark'}]}, {'uuid': 'd281003d-2f27-41e9-a532-3d59158096aa', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-1', 'links': [{'href': 'http://localhost/v1/nodes/d281003d-2f27-41e9-a532-3d59158096aa', 'rel': 'self'}, {'href': 'http://localhost/nodes/d281003d-2f27-41e9-a532-3d59158096aa', 'rel': 'bookmark'}]}, {'uuid': '27667d68-c2a2-41b8-96e9-68287e647ffb', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-2', 'links': [{'href': 'http://localhost/v1/nodes/27667d68-c2a2-41b8-96e9-68287e647ffb', 'rel': 'self'}, {'href': 'http://localhost/nodes/27667d68-c2a2-41b8-96e9-68287e647ffb', 'rel': 'bookmark'}]}, {'uuid': '4e1dd527-b978-434d-9049-a3aa1511ae34', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-3', 'links': [{'href': 'http://localhost/v1/nodes/4e1dd527-b978-434d-9049-a3aa1511ae34', 'rel': 'self'}, {'href': 'http://localhost/nodes/4e1dd527-b978-434d-9049-a3aa1511ae34', 'rel': 'bookmark'}]}, {'uuid': '525451a2-9006-43cd-9918-c2f26f724421', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': 'node-4', 'links': [{'href': 'http://localhost/v1/nodes/525451a2-9006-43cd-9918-c2f26f724421', 'rel': 'self'}, {'href': 'http://localhost/nodes/525451a2-9006-43cd-9918-c2f26f724421', 'rel': 'bookmark'}]}]} GET: /v1/nodes?project=54321 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1662f05c-f9aa-41e9-98b5-7f2ef7977042 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': '5b7b27e2-e2a2-4094-ae50-a32f5781079b', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/5b7b27e2-e2a2-4094-ae50-a32f5781079b', 'rel': 'self'}, {'href': 'http://localhost/nodes/5b7b27e2-e2a2-4094-ae50-a32f5781079b', 'rel': 'bookmark'}]}, {'uuid': 'f9e8b2b8-3ed5-48b9-bf77-d258096510b3', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/f9e8b2b8-3ed5-48b9-bf77-d258096510b3', 'rel': 'self'}, {'href': 'http://localhost/nodes/f9e8b2b8-3ed5-48b9-bf77-d258096510b3', 'rel': 'bookmark'}]}, {'uuid': 'bdc603b3-0bc7-4c98-9d53-17de6f404713', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/bdc603b3-0bc7-4c98-9d53-17de6f404713', 'rel': 'self'}, {'href': 'http://localhost/nodes/bdc603b3-0bc7-4c98-9d53-17de6f404713', 'rel': 'bookmark'}]}, {'uuid': 'e292cad5-347f-47f6-bcb0-0b51a398fb34', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/e292cad5-347f-47f6-bcb0-0b51a398fb34', 'rel': 'self'}, {'href': 'http://localhost/nodes/e292cad5-347f-47f6-bcb0-0b51a398fb34', 'rel': 'bookmark'}]}, {'uuid': '7110ca4c-e206-4c82-85d6-90634785efe4', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/7110ca4c-e206-4c82-85d6-90634785efe4', 'rel': 'self'}, {'href': 'http://localhost/nodes/7110ca4c-e206-4c82-85d6-90634785efe4', 'rel': 'bookmark'}]}, {'uuid': 'e90e77c8-b193-4b62-b643-56d09db29763', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/e90e77c8-b193-4b62-b643-56d09db29763', 'rel': 'self'}, {'href': 'http://localhost/nodes/e90e77c8-b193-4b62-b643-56d09db29763', 'rel': 'bookmark'}]}]} GET: /v1/nodes {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cbd70f58-89c9-4b5d-b242-267655a77b99 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-06T13:32:40.105489+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.TestListNodes.test_mask_available_state ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_mask_available_state ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1f1d7fc9-a174-4375-af16-1ec5b6fe23d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "f5a0cf3f-77db-4164-8db8-5b8906bc0862", "created_at": "2024-01-06T13:32:35.725107+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/volume", "rel": "self"}, {"href": "http://localhost/nodes/f5a0cf3f-77db-4164-8db8-5b8906bc0862/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-8859487d-a23c-4619-9582-bb92d58b9429 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123?reset_interfaces=True [{'path': '/name', 'value': 'new name', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6e4f7190-edde-484d-913f-fdb995b99d38 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/03c0f647-17c8-492a-93f1-1b12e96ed86c [{'path': '/network_interface', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ca8cb2ef-7737-4adf-9560-53b070e3286a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "03c0f647-17c8-492a-93f1-1b12e96ed86c", "created_at": "2024-01-06T13:32:39.263762+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/03c0f647-17c8-492a-93f1-1b12e96ed86c", "rel": "self"}, {"href": "http://localhost/nodes/03c0f647-17c8-492a-93f1-1b12e96ed86c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/03c0f647-17c8-492a-93f1-1b12e96ed86c/ports", "rel": "self"}, {"href": "http://localhost/nodes/03c0f647-17c8-492a-93f1-1b12e96ed86c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/03c0f647-17c8-492a-93f1-1b12e96ed86c/states", "rel": "self"}, {"href": "http://localhost/nodes/03c0f647-17c8-492a-93f1-1b12e96ed86c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/03c0f647-17c8-492a-93f1-1b12e96ed86c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/03c0f647-17c8-492a-93f1-1b12e96ed86c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/03c0f647-17c8-492a-93f1-1b12e96ed86c/volume", "rel": "self"}, {"href": "http://localhost/nodes/03c0f647-17c8-492a-93f1-1b12e96ed86c/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/d63bb750-0441-46a7-b1f1-c55b922e20e2 [{'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.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_next_link_with_association ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_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_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.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_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 GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-a64c17fb-f4c8-4a51-8f80-bd72050489c0 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-06T13:32:38.592317+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-06T13:32:38.592317+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {'foo': 123}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}]} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0fe59361-4fc3-4290-ac27-d0152ed0e634 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/portgroups {'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/0494b33f-8765-4960-be80-ff3856981424 Openstack-Request-Id: req-32740c63-c95a-462d-b22f-a1611acb3f11 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "0494b33f-8765-4960-be80-ff3856981424", "created_at": "2024-01-06T13:32:39.409630+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/0494b33f-8765-4960-be80-ff3856981424", "rel": "self"}, {"href": "http://localhost/portgroups/0494b33f-8765-4960-be80-ff3856981424", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/0494b33f-8765-4960-be80-ff3856981424/ports", "rel": "self"}, {"href": "http://localhost/portgroups/0494b33f-8765-4960-be80-ff3856981424/ports", "rel": "bookmark"}]} GET: /v1/portgroups/0494b33f-8765-4960-be80-ff3856981424 {} GOT:{'uuid': '0494b33f-8765-4960-be80-ff3856981424', 'created_at': '2024-01-06T13:32:39.409630+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/0494b33f-8765-4960-be80-ff3856981424', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0494b33f-8765-4960-be80-ff3856981424', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/0494b33f-8765-4960-be80-ff3856981424/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0494b33f-8765-4960-be80-ff3856981424/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-36bba9f6-5706-45c4-b020-cfee5c4cfc83 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: Additional properties are not allowed ('internal_info' was unexpected)\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': 'invalid-format', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-86a1feb2-5b90-498e-b7a1-bd9c49f144e8 X-Openstack-Ironic-Api-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-b854a9b2-a082-4df9-8b50-c4c9c473d095 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': 'invalid-format'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dffe1100-d2ab-4ef7-999a-4efeefba4ef8 X-Openstack-Ironic-Api-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-22fa259c-35d4-451a-9622-f23325ef45ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.25 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'properties': {'bond_prop': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_mode_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_allowed_in_power_transition ... ok GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:40.105489+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': '3e97b4b8-25e2-4596-8225-0fe76e2c85c5', 'instance_uuid': '8a31a2dc-89dc-4929-aa7a-a5e6f160a0d6', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/3e97b4b8-25e2-4596-8225-0fe76e2c85c5', 'rel': 'self'}, {'href': 'http://localhost/nodes/3e97b4b8-25e2-4596-8225-0fe76e2c85c5', 'rel': 'bookmark'}]}, {'uuid': 'fb7a1338-7524-4c1c-b9f4-bb6378f68c91', 'instance_uuid': '65a97941-6bcb-41c7-9954-732681bc5768', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/fb7a1338-7524-4c1c-b9f4-bb6378f68c91', 'rel': 'self'}, {'href': 'http://localhost/nodes/fb7a1338-7524-4c1c-b9f4-bb6378f68c91', 'rel': 'bookmark'}]}, {'uuid': 'c1a3676f-fa52-4739-816f-dc5887307d20', 'instance_uuid': '2a31d68a-5ef3-492d-9fda-17557ba3db60', 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/c1a3676f-fa52-4739-816f-dc5887307d20', 'rel': 'self'}, {'href': 'http://localhost/nodes/c1a3676f-fa52-4739-816f-dc5887307d20', '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=c1a3676f-fa52-4739-816f-dc5887307d20'} GET: /v1/nodes/detail?limit=3&associated=true {} GOT:{'nodes': [{'uuid': '046668b1-7833-49ad-b3c1-5f7929bc9562', 'created_at': '2024-01-06T13:32:41.120908+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': 'c6427d03-9d8c-422a-88b4-567d38f00c5e', '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/046668b1-7833-49ad-b3c1-5f7929bc9562', 'rel': 'self'}, {'href': 'http://localhost/nodes/046668b1-7833-49ad-b3c1-5f7929bc9562', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/046668b1-7833-49ad-b3c1-5f7929bc9562/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/046668b1-7833-49ad-b3c1-5f7929bc9562/ports', 'rel': 'bookmark'}]}, {'uuid': '6b7bd3e7-d974-42e9-9b30-3a6092d3cb10', 'created_at': '2024-01-06T13:32:41.150799+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': 'a9cc9998-030d-4688-8635-682bafbe43d6', '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/6b7bd3e7-d974-42e9-9b30-3a6092d3cb10', 'rel': 'self'}, {'href': 'http://localhost/nodes/6b7bd3e7-d974-42e9-9b30-3a6092d3cb10', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/6b7bd3e7-d974-42e9-9b30-3a6092d3cb10/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/6b7bd3e7-d974-42e9-9b30-3a6092d3cb10/ports', 'rel': 'bookmark'}]}, {'uuid': 'da72df13-d49c-4165-b192-b35a91bbea75', 'created_at': '2024-01-06T13:32:41.163486+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': 'adc80d61-5a60-456d-ad8b-a8337ad890fe', '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/da72df13-d49c-4165-b192-b35a91bbea75', 'rel': 'self'}, {'href': 'http://localhost/nodes/da72df13-d49c-4165-b192-b35a91bbea75', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/da72df13-d49c-4165-b192-b35a91bbea75/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/da72df13-d49c-4165-b192-b35a91bbea75/ports', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/nodes/detail?sort_key=id&sort_dir=asc&associated=True&limit=3&marker=da72df13-d49c-4165-b192-b35a91bbea75'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_false_field ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-eb85ee14-29db-4a79-9973-0b8a291f0ee7 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-06T13:32:39.755009+00:00", "updated_at": null, "console_enabled": false, "driver": "fake-hardware", "driver_info": {"str": "foo", "int": 123, "float": 0.1, "bool": true, "list": [1, 2], "none": null, "dict": {"cat": "meow"}}, "extra": {}, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "maintenance": false, "maintenance_reason": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "provision_state": null, "provision_updated_at": null, "reservation": null, "target_power_state": null, "target_provision_state": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "chassis_uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:39.755009+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 Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-d97c79a2-9226-4d4b-bab3-b03e6d904037 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-06T13:32:40.682806+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-06T13:32:40.682806+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.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_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.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_name_invalid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_chassis_uuid ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-89e05713-5423-411f-85ba-8540e7754db9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "d63bb750-0441-46a7-b1f1-c55b922e20e2", "created_at": "2024-01-06T13:32:40.015960+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/d63bb750-0441-46a7-b1f1-c55b922e20e2", "rel": "self"}, {"href": "http://localhost/nodes/d63bb750-0441-46a7-b1f1-c55b922e20e2", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d63bb750-0441-46a7-b1f1-c55b922e20e2/ports", "rel": "self"}, {"href": "http://localhost/nodes/d63bb750-0441-46a7-b1f1-c55b922e20e2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d63bb750-0441-46a7-b1f1-c55b922e20e2/states", "rel": "self"}, {"href": "http://localhost/nodes/d63bb750-0441-46a7-b1f1-c55b922e20e2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d63bb750-0441-46a7-b1f1-c55b922e20e2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d63bb750-0441-46a7-b1f1-c55b922e20e2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d63bb750-0441-46a7-b1f1-c55b922e20e2/volume", "rel": "self"}, {"href": "http://localhost/nodes/d63bb750-0441-46a7-b1f1-c55b922e20e2/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/a629a9fc-b4b0-4108-ac04-a16471c935a1 [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d85a29a3-4c45-4c1e-9b22-1c54ea7c8808 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "a629a9fc-b4b0-4108-ac04-a16471c935a1", "created_at": "2024-01-06T13:32:40.812122+00:00", "updated_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/a629a9fc-b4b0-4108-ac04-a16471c935a1", "rel": "self"}, {"href": "http://localhost/nodes/a629a9fc-b4b0-4108-ac04-a16471c935a1", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a629a9fc-b4b0-4108-ac04-a16471c935a1/ports", "rel": "self"}, {"href": "http://localhost/nodes/a629a9fc-b4b0-4108-ac04-a16471c935a1/ports", "rel": "bookmark"}]} PATCH: /v1/nodes/465c3c26-c69f-432b-aa13-f918aad718e1 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a24b0da5-a014-42c9-aa5c-1baa5c058fb2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "465c3c26-c69f-432b-aa13-f918aad718e1", "created_at": "2024-01-06T13:32:41.458316+00:00", "updated_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/465c3c26-c69f-432b-aa13-f918aad718e1", "rel": "self"}, {"href": "http://localhost/nodes/465c3c26-c69f-432b-aa13-f918aad718e1", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/465c3c26-c69f-432b-aa13-f918aad718e1/ports", "rel": "self"}, {"href": "http://localhost/nodes/465c3c26-c69f-432b-aa13-f918aad718e1/ports", "rel": "bookmark"}]} PATCH: /v1/nodes/de8889ae-76c4-46f3-957f-66fdcfc7bbad [{'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 GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:41.517965+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-06T13:32:41.873568+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-06T13:32:41.873568+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.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_automated_clean_true_field ... ok ironic.tests.unit.api.controllers.v1.test_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_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_portgroup.TestPost.test_create_portgroup_no_address ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_no_address ... ok GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:42.331042+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-06T13:32:42.613830+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-06T13:32:42.945423+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.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 GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 Openstack-Request-Id: req-3c9f5163-b372-4b46-8aff-eb96c34caae9 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-06T13:32:41.467268+00:00", "updated_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-06T13:32:41.467268+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-4e6c68aa-0077-4145-8a81-c95c621091c9 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-06T13:32:42.327874+00:00", "updated_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-06T13:32:42.327874+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-33078c4e-67b5-497e-8e11-bd64ac875957 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-06T13:32:43.064213+00:00", "updated_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.controllers.v1.test_node.TestPatch.test_update_automated_clean_with_false ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_automated_clean_with_false ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_with_internal_field ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.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_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_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_node.TestPost.test_post_portgroups_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_portgroups_subresource ... ok GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:42.945423+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/a5a0706e-ebeb-4899-acc1-063ea92488e8 {} GOT:{'uuid': 'a5a0706e-ebeb-4899-acc1-063ea92488e8', 'created_at': '2024-01-06T13:32:43.332235+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/a5a0706e-ebeb-4899-acc1-063ea92488e8', 'rel': 'self'}, {'href': 'http://localhost/nodes/a5a0706e-ebeb-4899-acc1-063ea92488e8', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/a5a0706e-ebeb-4899-acc1-063ea92488e8/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/a5a0706e-ebeb-4899-acc1-063ea92488e8/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/a5a0706e-ebeb-4899-acc1-063ea92488e8/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/a5a0706e-ebeb-4899-acc1-063ea92488e8/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/a5a0706e-ebeb-4899-acc1-063ea92488e8/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/a5a0706e-ebeb-4899-acc1-063ea92488e8/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/a5a0706e-ebeb-4899-acc1-063ea92488e8/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/a5a0706e-ebeb-4899-acc1-063ea92488e8/volume', 'rel': 'bookmark'}]} GET: /v1/nodes/7635ed5d-b5f7-428e-9b63-23a7047db24f {} GOT:{'uuid': '7635ed5d-b5f7-428e-9b63-23a7047db24f', 'created_at': '2024-01-06T13:32:43.451753+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/7635ed5d-b5f7-428e-9b63-23a7047db24f', 'rel': 'self'}, {'href': 'http://localhost/nodes/7635ed5d-b5f7-428e-9b63-23a7047db24f', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/7635ed5d-b5f7-428e-9b63-23a7047db24f/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/7635ed5d-b5f7-428e-9b63-23a7047db24f/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/7635ed5d-b5f7-428e-9b63-23a7047db24f/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/7635ed5d-b5f7-428e-9b63-23a7047db24f/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/7635ed5d-b5f7-428e-9b63-23a7047db24f/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/7635ed5d-b5f7-428e-9b63-23a7047db24f/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/7635ed5d-b5f7-428e-9b63-23a7047db24f/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/7635ed5d-b5f7-428e-9b63-23a7047db24f/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.controllers.v1.test_node.TestListNodes.test_node_boot_mode_null_field ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_boot_mode_null_field ... ok ironic.tests.unit.api.controllers.v1.test_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_node.TestPost.test_post_ports_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource ... ok GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-65f8b3e8-4025-4572-8ccd-fcbedeee3a7d 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-872600a1-cdec-448a-a7bb-a61e6e6ec87c 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-06T13:32:41.849145+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-560f8f58-ca2b-4ee6-b848-3ab6f7666487 X-Openstack-Ironic-Api-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-8b74b78d-3892-45b1-9afe-41a1f0bf6738 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-06T13:32:42.671201+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-06T13:32:42.671201+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 Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-a2bebacd-6a5c-456d-bced-1a278c90200d 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-06T13:32:43.112592+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-06T13:32:43.112592+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-50301b6b-1089-42d5-bfcb-97ab9b027b66 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for portgroup: 'node_uuid' is a required property\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a4eee5fb-87ad-4a35-9c40-f2027d048768 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e could not be found.\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} ironic.tests.unit.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_node.TestPost.test_post_ports_subresource_no_node_id ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_ports_subresource_no_node_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_conductor_group_old_api ... ok GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:43.845527+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-06T13:32:43.845527+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-06T13:32:44.339221+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=29596131-411f-452f-938f-914036840d9b {} 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.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_invalid_uuid ... ok ironic.tests.unit.api.controllers.v1.test_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.TestPost.test_post_volume_connectors_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_connectors_subresource ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter ironic.tests.unit.api.controllers.v1.test_portgroup.TestPost.test_create_portgroup_with_hyphens_delimiter ... ok ironic.tests.unit.api.controllers.v1.test_node.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_node_by_instance_uuid_wrong_uuid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_by_instance_uuid_wrong_uuid ... ok ironic.tests.unit.api.controllers.v1.test_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_node.TestPost.test_post_volume_targets_subresource ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_post_volume_targets_subresource ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2bbdf469-ff4d-4b9f-b5fc-98393ea50096 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"uuid": "de8889ae-76c4-46f3-957f-66fdcfc7bbad", "created_at": "2024-01-06T13:32:42.103754+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/de8889ae-76c4-46f3-957f-66fdcfc7bbad", "rel": "self"}, {"href": "http://localhost/nodes/de8889ae-76c4-46f3-957f-66fdcfc7bbad", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/de8889ae-76c4-46f3-957f-66fdcfc7bbad/ports", "rel": "self"}, {"href": "http://localhost/nodes/de8889ae-76c4-46f3-957f-66fdcfc7bbad/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/de8889ae-76c4-46f3-957f-66fdcfc7bbad/states", "rel": "self"}, {"href": "http://localhost/nodes/de8889ae-76c4-46f3-957f-66fdcfc7bbad/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/de8889ae-76c4-46f3-957f-66fdcfc7bbad/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/de8889ae-76c4-46f3-957f-66fdcfc7bbad/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/de8889ae-76c4-46f3-957f-66fdcfc7bbad/volume", "rel": "self"}, {"href": "http://localhost/nodes/de8889ae-76c4-46f3-957f-66fdcfc7bbad/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/210971fb-6181-4d88-b0bc-736c84c49405 [{'path': '/automated_clean', 'value': True, 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6dc048cc-ba8a-447a-b2e3-4b333363ac00 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/ec3759f7-7596-431a-8f91-e7d876d6b9ef [{'path': '/automated_clean', 'value': False, 'op': 'replace'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-aac5f14f-0d4c-49df-b7c8-f3f4a89eda9c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.47 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: fake\", \"debuginfo\": null}"} PATCH: /v1/nodes/node-57.1 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5897c926-7a52-4f2d-be94-ff63b4094578 X-Openstack-Ironic-Api-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/d6663d05-37c5-454b-9016-63cb73425100 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-98ffd3cd-e559-4f6f-a81a-f693cedcf5ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.46 {"uuid": "d6663d05-37c5-454b-9016-63cb73425100", "created_at": "2024-01-06T13:32:44.120179+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/d6663d05-37c5-454b-9016-63cb73425100", "rel": "self"}, {"href": "http://localhost/nodes/d6663d05-37c5-454b-9016-63cb73425100", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d6663d05-37c5-454b-9016-63cb73425100/ports", "rel": "self"}, {"href": "http://localhost/nodes/d6663d05-37c5-454b-9016-63cb73425100/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d6663d05-37c5-454b-9016-63cb73425100/states", "rel": "self"}, {"href": "http://localhost/nodes/d6663d05-37c5-454b-9016-63cb73425100/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d6663d05-37c5-454b-9016-63cb73425100/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d6663d05-37c5-454b-9016-63cb73425100/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d6663d05-37c5-454b-9016-63cb73425100/volume", "rel": "self"}, {"href": "http://localhost/nodes/d6663d05-37c5-454b-9016-63cb73425100/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/dac562f1-c141-4874-a12e-d9aeafffedf0 [{'path': '/conductor_group', 'value': 'foogroup', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-be02afcc-0d79-4116-86f1-0c6d77c4afca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.45 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/a01297ac-4249-48b6-8265-0485c4e9819a [{'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_ramdisk.TestHeartbeat.test_bad_invalid_agent_status ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_bad_invalid_agent_status ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_conductor_group_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_description_oversize ... 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.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_heartbeat_rejects_different_callback_url ... ok ironic.tests.unit.api.controllers.v1.test_node.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.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_node_not_found ... ok GOT:{'nodes': [{'uuid': 'b2959490-b16c-4a99-80d4-4532c798365e', 'instance_uuid': '29596131-411f-452f-938f-914036840d9b', 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/b2959490-b16c-4a99-80d4-4532c798365e', 'rel': 'self'}, {'href': 'http://localhost/nodes/b2959490-b16c-4a99-80d4-4532c798365e', 'rel': 'bookmark'}]}]} GET: /v1/nodes?instance_uuid=fake {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6fc863af-184d-4a6d-a415-161405de2698 X-Openstack-Ironic-Api-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=d5636bfa-b9a7-4e29-bf13-8454e3fa73f9 {} GOT:{'nodes': []} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:45.815418+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-06T13:32:45.815418+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-06T13:32:46.354862+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.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.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_ramdisk.TestHeartbeat.test_ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok ... 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.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 GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-0f0e5ff0-44ec-4c0b-a651-67a378d6b981 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.23 {"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {}, "mode": "active-backup", "name": "fooname", "properties": {}, "standalone_ports_supported": true, "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "ports": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports", "rel": "bookmark"}]} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}]} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-7d5a2f7a-51a2-4293-ac50-a393f844fbb1 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-06T13:32:45.179707+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-06T13:32:45.179707+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-b87f03be-5fab-46a6-b5c2-c338d0668023 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: 52-54-00-cf-2d-31\", \"debuginfo\": null}"} POST: /v1/portgroups {'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'name': 'fooname', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'standalone_ports_supported': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 Openstack-Request-Id: req-098877b1-cdf1-40cf-a475-a5451768ff3f 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-06T13:32:45.705070+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/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-89347c62-7ec5-48ec-9900-6cdc1b1758f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"} POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url2'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-83c971da-0d7d-4438-b3dc-de24836fae6f X-Openstack-Ironic-Api-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/8cafb23d-17bc-4a18-9cd9-80fb8df6ad71 {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c1504d0a-cfd1-4011-a775-58231292530f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 8cafb23d-17bc-4a18-9cd9-80fb8df6ad71 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-e482a1a8-5326-4c96-b4d5-d1c013f79ac1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_status_and_status ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_status_and_status ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_methods ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_token ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_token ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f8e0d9e8-ff5a-4842-9183-69847e3a1cf3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.51 {"uuid": "a01297ac-4249-48b6-8265-0485c4e9819a", "created_at": "2024-01-06T13:32:45.215614+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/a01297ac-4249-48b6-8265-0485c4e9819a", "rel": "self"}, {"href": "http://localhost/nodes/a01297ac-4249-48b6-8265-0485c4e9819a", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a01297ac-4249-48b6-8265-0485c4e9819a/ports", "rel": "self"}, {"href": "http://localhost/nodes/a01297ac-4249-48b6-8265-0485c4e9819a/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a01297ac-4249-48b6-8265-0485c4e9819a/states", "rel": "self"}, {"href": "http://localhost/nodes/a01297ac-4249-48b6-8265-0485c4e9819a/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a01297ac-4249-48b6-8265-0485c4e9819a/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a01297ac-4249-48b6-8265-0485c4e9819a/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a01297ac-4249-48b6-8265-0485c4e9819a/volume", "rel": "self"}, {"href": "http://localhost/nodes/a01297ac-4249-48b6-8265-0485c4e9819a/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/7663abc6-f515-4704-b3fc-d1ae72fa0a48 [{'path': '/description', 'value': '1234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678123456781234567812345678last weed', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-29274008-a9d1-4f57-bf6c-b1f50ab53a55 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-77639105-d64c-425e-976d-f6b731fbe653 X-Openstack-Ironic-Api-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 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:46.354862+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-06T13:32:47.005583+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-06T13:32:47.005583+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.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_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.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_verify_ca ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_verify_ca ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_put ... ok GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:47.556954+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-06T13:32:47.981824+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-06T13:32:47.981824+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 GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:43.064213+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-d2197309-22d1-4731-bdf0-e70468011ff9 X-Openstack-Ironic-Api-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-a76d699e-ed5d-4a86-a36a-cbfeac37c776 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-103a3ed2-455a-4428-af80-041374c29afc X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-eaeed57d-e7a0-4ad8-8d5e-78050538aa06 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} POST: /v1/nodes/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f17d39d4-a998-4168-9687-23d739ab5dfb X-Openstack-Ironic-Api-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-19a14f7c-5683-4c8a-94f0-34bcdbbe7c27 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-3f0fece9-6afc-4a31-b047-d5a385659fd2 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-e3c0ed0f-52ef-40af-8f1a-2842fb9ed2ae 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-e7065194-3058-4af8-b57c-dfad1db0b2da X-Openstack-Ironic-Api-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-a07be78a-391f-4600-b575-df5ff76c3a33 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 ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_agent_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_vendor_passthru_without_method ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_ok_by_name ... ok ironic.tests.unit.api.controllers.v1.test_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_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_interface_fields_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_common_params ... ok ironic.tests.unit.api.controllers.v1.test_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_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_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 GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:48.339589+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-06T13:32:48.339589+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'inspect wait', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'rescue_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'traits': [], 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:48.879127+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.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:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2d23f7b1-2b18-45bb-8257-6bdf4dd3a77b X-Openstack-Ironic-Api-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/08cefd2f-5c06-49aa-b509-10ae8aa8d6d4 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ad1b5346-dd0d-49e6-b85b-a8a5fedb830c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "08cefd2f-5c06-49aa-b509-10ae8aa8d6d4", "created_at": "2024-01-06T13:32:48.163640+00:00", "updated_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/08cefd2f-5c06-49aa-b509-10ae8aa8d6d4", "rel": "self"}, {"href": "http://localhost/nodes/08cefd2f-5c06-49aa-b509-10ae8aa8d6d4", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/08cefd2f-5c06-49aa-b509-10ae8aa8d6d4/ports", "rel": "self"}, {"href": "http://localhost/nodes/08cefd2f-5c06-49aa-b509-10ae8aa8d6d4/ports", "rel": "bookmark"}]} PATCH: /v1/nodes/4cd09d72-e9c5-474e-a9b5-0e42bb7505f9 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e97ee942-67e4-44b5-9c0f-32e32f8378b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "4cd09d72-e9c5-474e-a9b5-0e42bb7505f9", "created_at": "2024-01-06T13:32:48.720059+00:00", "updated_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/4cd09d72-e9c5-474e-a9b5-0e42bb7505f9", "rel": "self"}, {"href": "http://localhost/nodes/4cd09d72-e9c5-474e-a9b5-0e42bb7505f9", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/4cd09d72-e9c5-474e-a9b5-0e42bb7505f9/ports", "rel": "self"}, {"href": "http://localhost/nodes/4cd09d72-e9c5-474e-a9b5-0e42bb7505f9/ports", "rel": "bookmark"}]} PATCH: /v1/nodes/60f22c96-6f6f-4fb4-b6f1-5b17d08a29ef [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c62e69c4-939d-4528-a234-85335a857bd3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "60f22c96-6f6f-4fb4-b6f1-5b17d08a29ef", "created_at": "2024-01-06T13:32:48.843814+00:00", "updated_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/60f22c96-6f6f-4fb4-b6f1-5b17d08a29ef", "rel": "self"}, {"href": "http://localhost/nodes/60f22c96-6f6f-4fb4-b6f1-5b17d08a29ef", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/60f22c96-6f6f-4fb4-b6f1-5b17d08a29ef/ports", "rel": "self"}, {"href": "http://localhost/nodes/60f22c96-6f6f-4fb4-b6f1-5b17d08a29ef/ports", "rel": "bookmark"}]} PATCH: /v1/nodes/b1ed26ff-2447-4427-b6f9-e143f8dc17f8 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ce8a4216-b024-4aac-af2b-881fd8cf3208 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "b1ed26ff-2447-4427-b6f9-e143f8dc17f8", "created_at": "2024-01-06T13:32:49.020114+00:00", "updated_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/b1ed26ff-2447-4427-b6f9-e143f8dc17f8", "rel": "self"}, {"href": "http://localhost/nodes/b1ed26ff-2447-4427-b6f9-e143f8dc17f8", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/b1ed26ff-2447-4427-b6f9-e143f8dc17f8/ports", "rel": "self"}, {"href": "http://localhost/nodes/b1ed26ff-2447-4427-b6f9-e143f8dc17f8/ports", "rel": "bookmark"}]} PATCH: /v1/nodes/dd0e9723-28ab-48c1-8e72-3bdae2124f2f [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-23043c1c-ea59-4e8d-b3e5-35387238b96a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "dd0e9723-28ab-48c1-8e72-3bdae2124f2f", "created_at": "2024-01-06T13:32:49.205622+00:00", "updated_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/dd0e9723-28ab-48c1-8e72-3bdae2124f2f", "rel": "self"}, {"href": "http://localhost/nodes/dd0e9723-28ab-48c1-8e72-3bdae2124f2f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/dd0e9723-28ab-48c1-8e72-3bdae2124f2f/ports", "rel": "self"}, {"href": "http://localhost/nodes/dd0e9723-28ab-48c1-8e72-3bdae2124f2f/ports", "rel": "bookmark"}]} PATCH: /v1/nodes/5a818fa2-870a-49c7-b24d-f5d07016820d [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_maintenance_notification ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_null_field ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_lessee_null_field ... ok ironic.tests.unit.api.controllers.v1.test_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_ramdisk.TestHeartbeat.test_old_api_agent_status_error ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_agent_status_error ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_node_notification_mask_secrets ... ok ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification ironic.tests.unit.api.controllers.v1.test_notification_utils.APINotifyTestCase.test_port_notification ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeat.test_old_api_version ... ok GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:49.470406+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-06T13:32:49.470406+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-06T13:32:49.950781+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.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_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_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve ... ok ironic.tests.unit.api.controllers.v1.test_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_node.TestListNodes.test_node_network_data ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data ... 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_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.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.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_policy_forbidden ironic.tests.unit.api.controllers.v1.test_utils.TestCheckNodePolicyAndRetrieve.test_check_node_policy_and_retrieve_policy_forbidden ... ok ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked ironic.tests.unit.api.controllers.v1.test_port.TestDelete.test_delete_port_node_locked ... ok GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:50.329693+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/e379c6d5-82e3-4e12-a694-e2d88b3cad4b {} GOT:{'uuid': 'e379c6d5-82e3-4e12-a694-e2d88b3cad4b', 'created_at': '2024-01-06T13:32:50.871614+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/e379c6d5-82e3-4e12-a694-e2d88b3cad4b', 'rel': 'self'}, {'href': 'http://localhost/nodes/e379c6d5-82e3-4e12-a694-e2d88b3cad4b', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/e379c6d5-82e3-4e12-a694-e2d88b3cad4b/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/e379c6d5-82e3-4e12-a694-e2d88b3cad4b/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/e379c6d5-82e3-4e12-a694-e2d88b3cad4b/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/e379c6d5-82e3-4e12-a694-e2d88b3cad4b/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/e379c6d5-82e3-4e12-a694-e2d88b3cad4b/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/e379c6d5-82e3-4e12-a694-e2d88b3cad4b/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/e379c6d5-82e3-4e12-a694-e2d88b3cad4b/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/e379c6d5-82e3-4e12-a694-e2d88b3cad4b/volume', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_network_data_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_utils.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_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_utils.TestCheckPortListPolicy.test_check_port_list_policy ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d63152ba-5016-4fd9-b44f-976095fafbf5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "5a818fa2-870a-49c7-b24d-f5d07016820d", "created_at": "2024-01-06T13:32:49.492241+00:00", "updated_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/5a818fa2-870a-49c7-b24d-f5d07016820d", "rel": "self"}, {"href": "http://localhost/nodes/5a818fa2-870a-49c7-b24d-f5d07016820d", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5a818fa2-870a-49c7-b24d-f5d07016820d/ports", "rel": "self"}, {"href": "http://localhost/nodes/5a818fa2-870a-49c7-b24d-f5d07016820d/ports", "rel": "bookmark"}]} PATCH: /v1/nodes/18d3804c-5d4f-4655-a265-277226f66a7f [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8c3289a6-39f6-4c78-bcd7-d7e393ca3dd6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "18d3804c-5d4f-4655-a265-277226f66a7f", "created_at": "2024-01-06T13:32:49.768384+00:00", "updated_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/18d3804c-5d4f-4655-a265-277226f66a7f", "rel": "self"}, {"href": "http://localhost/nodes/18d3804c-5d4f-4655-a265-277226f66a7f", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18d3804c-5d4f-4655-a265-277226f66a7f/ports", "rel": "self"}, {"href": "http://localhost/nodes/18d3804c-5d4f-4655-a265-277226f66a7f/ports", "rel": "bookmark"}]} PATCH: /v1/nodes/6e22106f-749c-4708-b508-30e24fcdb1ed [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-85d4e7d5-585b-42f1-b15d-2f350a5cb13b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "6e22106f-749c-4708-b508-30e24fcdb1ed", "created_at": "2024-01-06T13:32:50.147963+00:00", "updated_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/6e22106f-749c-4708-b508-30e24fcdb1ed", "rel": "self"}, {"href": "http://localhost/nodes/6e22106f-749c-4708-b508-30e24fcdb1ed", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6e22106f-749c-4708-b508-30e24fcdb1ed/ports", "rel": "self"}, {"href": "http://localhost/nodes/6e22106f-749c-4708-b508-30e24fcdb1ed/ports", "rel": "bookmark"}]} PATCH: /v1/nodes/69425d7b-2652-4d7e-a204-9ad213007250 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-37628ba2-e326-47ec-8de7-0bfe10d00503 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "69425d7b-2652-4d7e-a204-9ad213007250", "created_at": "2024-01-06T13:32:50.404039+00:00", "updated_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/69425d7b-2652-4d7e-a204-9ad213007250", "rel": "self"}, {"href": "http://localhost/nodes/69425d7b-2652-4d7e-a204-9ad213007250", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/69425d7b-2652-4d7e-a204-9ad213007250/ports", "rel": "self"}, {"href": "http://localhost/nodes/69425d7b-2652-4d7e-a204-9ad213007250/ports", "rel": "bookmark"}]} PATCH: /v1/nodes/6c5d9618-8fd4-4171-baae-dee07a4a9298 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bf928dd4-7948-440d-858b-65523fa9d34d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"uuid": "6c5d9618-8fd4-4171-baae-dee07a4a9298", "created_at": "2024-01-06T13:32:50.683617+00:00", "updated_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/6c5d9618-8fd4-4171-baae-dee07a4a9298", "rel": "self"}, {"href": "http://localhost/nodes/6c5d9618-8fd4-4171-baae-dee07a4a9298", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6c5d9618-8fd4-4171-baae-dee07a4a9298/ports", "rel": "self"}, {"href": "http://localhost/nodes/6c5d9618-8fd4-4171-baae-dee07a4a9298/ports", "rel": "bookmark"}]} PATCH: /v1/nodes/899e20f6-7667-4bea-a67f-439b382ed352 [{'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.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_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden ... ok GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:51.267665+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-06T13:32:51.267665+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-06T13:32:51.721356+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.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_empty ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden_no_project ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_forbidden_no_project ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_non_admin ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortListPolicy.test_check_port_list_policy_non_admin ... ok ironic.tests.unit.api.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_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_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.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_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_none ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_owner_present ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_allow_node_logical_names_pre_name ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_not_allow ... ok ironic.tests.unit.api.controllers.v1.test_utils.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_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_physnet_allow ... ok ironic.tests.unit.api.controllers.v1.test_utils.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_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_utils.TestNodeIdent.test_get_rpc_node_expect_name ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_name ... ok GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:51.721356+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-06T13:32:52.335467+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-06T13:32:52.677881+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/afe690a5-d5c2-48fd-98fb-f8fb94e18d14 {} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_protected ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_allow ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_get_rpc_node_expect_uuid ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5f2170b8-2f44-4d3f-9f90-5398ed779e9a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"uuid": "899e20f6-7667-4bea-a67f-439b382ed352", "created_at": "2024-01-06T13:32:51.350594+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/899e20f6-7667-4bea-a67f-439b382ed352", "rel": "self"}, {"href": "http://localhost/nodes/899e20f6-7667-4bea-a67f-439b382ed352", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/899e20f6-7667-4bea-a67f-439b382ed352/ports", "rel": "self"}, {"href": "http://localhost/nodes/899e20f6-7667-4bea-a67f-439b382ed352/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/899e20f6-7667-4bea-a67f-439b382ed352/states", "rel": "self"}, {"href": "http://localhost/nodes/899e20f6-7667-4bea-a67f-439b382ed352/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/899e20f6-7667-4bea-a67f-439b382ed352/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/899e20f6-7667-4bea-a67f-439b382ed352/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/899e20f6-7667-4bea-a67f-439b382ed352/volume", "rel": "self"}, {"href": "http://localhost/nodes/899e20f6-7667-4bea-a67f-439b382ed352/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/8c064798-a5a3-4ce2-80ce-cbcf166b8b32 [{'path': '/instance_uuid', 'op': 'remove'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-c69d494f-d952-41be-b635-7ead543cc9f4 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 \\\"8c064798-a5a3-4ce2-80ce-cbcf166b8b32\\\" while it is in state \\\"inspecting\\\".\", \"debuginfo\": null}"} PATCH: /v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c21563f3-833a-4937-873f-fe922a7accd2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5561ff6a-8a67-40a0-afb5-2a5ed354c919", "created_at": "2024-01-06T13:32:52.816510+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow ironic.tests.unit.api.controllers.v1.test_port.TestPortsController__CheckAllowedPortFields.test__check_allowed_port_fields_portgroup_not_allow ... ok ironic.tests.unit.api.controllers.v1.test_utils.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_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_utils.TestNodeIdent.test_is_valid_node_name ironic.tests.unit.api.controllers.v1.test_utils.TestNodeIdent.test_is_valid_node_name ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8791bd2-2395-471f-a702-93b8f3df0a13 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5561ff6a-8a67-40a0-afb5-2a5ed354c919", "created_at": "2024-01-06T13:32:52.816510+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-027a0191-8901-4f2b-b6e3-3f1048255ad7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5561ff6a-8a67-40a0-afb5-2a5ed354c919", "created_at": "2024-01-06T13:32:52.816510+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:{'uuid': 'afe690a5-d5c2-48fd-98fb-f8fb94e18d14', 'created_at': '2024-01-06T13:32:52.988542+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/afe690a5-d5c2-48fd-98fb-f8fb94e18d14', 'rel': 'self'}, {'href': 'http://localhost/nodes/afe690a5-d5c2-48fd-98fb-f8fb94e18d14', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/afe690a5-d5c2-48fd-98fb-f8fb94e18d14/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/afe690a5-d5c2-48fd-98fb-f8fb94e18d14/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/afe690a5-d5c2-48fd-98fb-f8fb94e18d14/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/afe690a5-d5c2-48fd-98fb-f8fb94e18d14/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/afe690a5-d5c2-48fd-98fb-f8fb94e18d14/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/afe690a5-d5c2-48fd-98fb-f8fb94e18d14/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/afe690a5-d5c2-48fd-98fb-f8fb94e18d14/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/afe690a5-d5c2-48fd-98fb-f8fb94e18d14/volume', 'rel': 'bookmark'}]} GET: /v1/nodes/9b81b3b3-2b9b-4f87-984e-2bd46ad3f55e {} GOT:{'uuid': '9b81b3b3-2b9b-4f87-984e-2bd46ad3f55e', 'created_at': '2024-01-06T13:32:53.163200+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/9b81b3b3-2b9b-4f87-984e-2bd46ad3f55e', 'rel': 'self'}, {'href': 'http://localhost/nodes/9b81b3b3-2b9b-4f87-984e-2bd46ad3f55e', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/9b81b3b3-2b9b-4f87-984e-2bd46ad3f55e/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/9b81b3b3-2b9b-4f87-984e-2bd46ad3f55e/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/9b81b3b3-2b9b-4f87-984e-2bd46ad3f55e/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/9b81b3b3-2b9b-4f87-984e-2bd46ad3f55e/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/9b81b3b3-2b9b-4f87-984e-2bd46ad3f55e/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/9b81b3b3-2b9b-4f87-984e-2bd46ad3f55e/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/9b81b3b3-2b9b-4f87-984e-2bd46ad3f55e/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/9b81b3b3-2b9b-4f87-984e-2bd46ad3f55e/volume', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:53.587743+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.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_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_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_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_ramdisk.TestLookupScopedRBAC.test_fast_deploy_lookup ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_fast_deploy_lookup ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-374c3ff5-03a4-4bed-aa11-699dd955223a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5561ff6a-8a67-40a0-afb5-2a5ed354c919", "created_at": "2024-01-06T13:32:52.816510+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d8bee9e1-3bdd-41ee-9f5b-18f6af9ad2b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5561ff6a-8a67-40a0-afb5-2a5ed354c919", "created_at": "2024-01-06T13:32:52.816510+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919 [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] 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_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 GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:53.587743+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-06T13:32:54.169077+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-06T13:32:54.169077+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.api.controllers.v1.test_utils.TestObjectToDict.test_fields ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_fields ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0d254538-e584-4fb1-91fa-779b861560a6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5561ff6a-8a67-40a0-afb5-2a5ed354c919", "created_at": "2024-01-06T13:32:52.816510+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a5ef5bd0-d502-467e-ba4e-eff88e274ef2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5561ff6a-8a67-40a0-afb5-2a5ed354c919", "created_at": "2024-01-06T13:32:52.816510+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919 [{'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.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_utils.TestObjectToDict.test_links ironic.tests.unit.api.controllers.v1.test_utils.TestObjectToDict.test_links ... 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.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_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_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_node.TestPatch.test_update_interface_fields_bad_version ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_interface_fields_bad_version ... ok GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:54.683973+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/39dcb2d2-2496-456f-a51d-038fd228c375 {} GOT:{'uuid': '39dcb2d2-2496-456f-a51d-038fd228c375', 'created_at': '2024-01-06T13:32:55.034427+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/39dcb2d2-2496-456f-a51d-038fd228c375', 'rel': 'self'}, {'href': 'http://localhost/nodes/39dcb2d2-2496-456f-a51d-038fd228c375', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/39dcb2d2-2496-456f-a51d-038fd228c375/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/39dcb2d2-2496-456f-a51d-038fd228c375/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/39dcb2d2-2496-456f-a51d-038fd228c375/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/39dcb2d2-2496-456f-a51d-038fd228c375/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/39dcb2d2-2496-456f-a51d-038fd228c375/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/39dcb2d2-2496-456f-a51d-038fd228c375/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/39dcb2d2-2496-456f-a51d-038fd228c375/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/39dcb2d2-2496-456f-a51d-038fd228c375/volume', 'rel': 'bookmark'}]} GET: /v1/nodes/f234f2d1-d717-44c8-8857-3b696f79b789 {} GOT:{'uuid': 'f234f2d1-d717-44c8-8857-3b696f79b789', 'created_at': '2024-01-06T13:32:55.286954+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/f234f2d1-d717-44c8-8857-3b696f79b789', 'rel': 'self'}, {'href': 'http://localhost/nodes/f234f2d1-d717-44c8-8857-3b696f79b789', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/f234f2d1-d717-44c8-8857-3b696f79b789/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/f234f2d1-d717-44c8-8857-3b696f79b789/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/f234f2d1-d717-44c8-8857-3b696f79b789/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/f234f2d1-d717-44c8-8857-3b696f79b789/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/f234f2d1-d717-44c8-8857-3b696f79b789/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/f234f2d1-d717-44c8-8857-3b696f79b789/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/f234f2d1-d717-44c8-8857-3b696f79b789/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/f234f2d1-d717-44c8-8857-3b696f79b789/volume', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_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_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_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 GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:55.705158+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-06T13:32:55.705158+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-06T13:32:56.191569+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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e44b8c4e-afb7-431e-8a27-1e3f358baec4 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 Content-Type: application/json Openstack-Request-Id: req-bef610c7-f9ef-4868-b5ac-fba5b6c1e6fa X-Openstack-Ironic-Api-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}"} DELETE: /v1/ports/52:54:00:cf:2d:31 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-72717814-bb6d-4a66-bf87-4005d5c943c5 X-Openstack-Ironic-Api-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-63fb8258-a315-4ae6-b80f-eb9c152dab18 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 Content-Type: application/json Openstack-Request-Id: req-df69b4e8-e08d-4457-bebf-010d1f8322b0 X-Openstack-Ironic-Api-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/09582bd9-d980-424f-b259-27be405240a1 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d498ad96-f721-4f18-9e31-32fd1e6abeeb 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=93cb4f9c-39b2-43f1-9d20-b6d520aa6d73 {} GOT:{'node': {'uuid': '93cb4f9c-39b2-43f1-9d20-b6d520aa6d73', '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/93cb4f9c-39b2-43f1-9d20-b6d520aa6d73', 'rel': 'self'}, {'href': 'http://localhost/nodes/93cb4f9c-39b2-43f1-9d20-b6d520aa6d73', '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=93cb4f9c-39b2-43f1-9d20-b6d520aa6d73 {} GOT:{'node': {'uuid': '93cb4f9c-39b2-43f1-9d20-b6d520aa6d73', '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/93cb4f9c-39b2-43f1-9d20-b6d520aa6d73', 'rel': 'self'}, {'href': 'http://localhost/nodes/93cb4f9c-39b2-43f1-9d20-b6d520aa6d73', '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=93cb4f9c-39b2-43f1-9d20-b6d520aa6d73 {} GOT:{'node': {'uuid': '93cb4f9c-39b2-43f1-9d20-b6d520aa6d73', '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/93cb4f9c-39b2-43f1-9d20-b6d520aa6d73', 'rel': 'self'}, {'href': 'http://localhost/nodes/93cb4f9c-39b2-43f1-9d20-b6d520aa6d73', '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': '0007c5f2-45a1-4f74-9de1-63dd1d461751', '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/0007c5f2-45a1-4f74-9de1-63dd1d461751', 'rel': 'self'}, {'href': 'http://localhost/nodes/0007c5f2-45a1-4f74-9de1-63dd1d461751', '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=5d57809f-e416-46d9-a42a-6849f48e95d7 {} GOT:{'node': {'uuid': '5d57809f-e416-46d9-a42a-6849f48e95d7', '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/5d57809f-e416-46d9-a42a-6849f48e95d7', 'rel': 'self'}, {'href': 'http://localhost/nodes/5d57809f-e416-46d9-a42a-6849f48e95d7', '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=1cc297b5-fbe3-4a94-84d7-8a9f0724eeb0 {} GOT:{'node': {'uuid': '1cc297b5-fbe3-4a94-84d7-8a9f0724eeb0', '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/1cc297b5-fbe3-4a94-84d7-8a9f0724eeb0', 'rel': 'self'}, {'href': 'http://localhost/nodes/1cc297b5-fbe3-4a94-84d7-8a9f0724eeb0', '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_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_node.TestListNodes.test_node_retired_with_reason ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_retired_with_reason ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-273f580f-9ea8-4c77-9e2d-af84566ecdda X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5561ff6a-8a67-40a0-afb5-2a5ed354c919", "created_at": "2024-01-06T13:32:52.816510+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "self"}, {"href": "http://localhost/nodes/5561ff6a-8a67-40a0-afb5-2a5ed354c919/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/d6721691-c767-4835-ab41-c503cf926c23 [{'path': '/boot_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-bf069abf-da5d-4483-bb2a-b3dadba4b94b 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/d6721691-c767-4835-ab41-c503cf926c23 [{'path': '/console_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f5160db4-9b6a-4532-81ae-fa358fa9e17a 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/d6721691-c767-4835-ab41-c503cf926c23 [{'path': '/deploy_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-154af563-dd21-40eb-b68d-0f7d849af098 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/d6721691-c767-4835-ab41-c503cf926c23 [{'path': '/inspect_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-e71be7fa-c1ac-446c-8a69-8c8a6b0e9ce9 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/d6721691-c767-4835-ab41-c503cf926c23 [{'path': '/management_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0c73319f-4f8f-408e-ae2d-bd48922427f0 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/d6721691-c767-4835-ab41-c503cf926c23 [{'path': '/power_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-5ab16ae6-4f5f-4e65-b35b-b054ee8e5f4d 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/d6721691-c767-4835-ab41-c503cf926c23 [{'path': '/raid_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-b8c33683-cff8-4cff-8434-9dcb9dd2a09b 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/d6721691-c767-4835-ab41-c503cf926c23 [{'path': '/vendor_interface', 'value': 'fake', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-09577b3d-c296-4c15-99cb-1442a2855129 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/17504ef5-0d62-47f0-a560-c8a7801ccbff [{'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_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_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 GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:56.191569+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-06T13:32:56.570408+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/8a987f54-630c-41dd-835e-7de2fd0d88a1 {} GOT:{'uuid': '8a987f54-630c-41dd-835e-7de2fd0d88a1', 'created_at': '2024-01-06T13:32:57.109387+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/8a987f54-630c-41dd-835e-7de2fd0d88a1', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a987f54-630c-41dd-835e-7de2fd0d88a1', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/8a987f54-630c-41dd-835e-7de2fd0d88a1/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a987f54-630c-41dd-835e-7de2fd0d88a1/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/8a987f54-630c-41dd-835e-7de2fd0d88a1/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a987f54-630c-41dd-835e-7de2fd0d88a1/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/8a987f54-630c-41dd-835e-7de2fd0d88a1/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a987f54-630c-41dd-835e-7de2fd0d88a1/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/8a987f54-630c-41dd-835e-7de2fd0d88a1/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/8a987f54-630c-41dd-835e-7de2fd0d88a1/volume', 'rel': 'bookmark'}]} GET: /v1/nodes/c4425676-78c6-423a-80ea-dbf81e2a58ba {} 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.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.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_ramdisk.TestLookupScopedRBAC.test_not_found ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_not_found ... ok ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_after_miss_context ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_secure_boot_hidden_in_lower_version ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_nothing_provided ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_nothing_provided ... ok ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_auth_token_info ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_auth_token_info ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_old_api_version ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_old_api_version ... ok GOT:{'uuid': 'c4425676-78c6-423a-80ea-dbf81e2a58ba', 'created_at': '2024-01-06T13:32:57.212312+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/c4425676-78c6-423a-80ea-dbf81e2a58ba', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4425676-78c6-423a-80ea-dbf81e2a58ba', 'rel': 'bookmark'}], 'conductor': 'fake.conductor', 'allocation_uuid': None, 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/c4425676-78c6-423a-80ea-dbf81e2a58ba/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4425676-78c6-423a-80ea-dbf81e2a58ba/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/c4425676-78c6-423a-80ea-dbf81e2a58ba/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4425676-78c6-423a-80ea-dbf81e2a58ba/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/c4425676-78c6-423a-80ea-dbf81e2a58ba/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4425676-78c6-423a-80ea-dbf81e2a58ba/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/c4425676-78c6-423a-80ea-dbf81e2a58ba/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4425676-78c6-423a-80ea-dbf81e2a58ba/volume', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:32:57.570510+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-06T13:32:57.570510+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.test_hooks.TestContextHook.test_context_hook_noauth_token_removed ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_noauth_token_removed ... ok ironic.tests.unit.api.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.TestListNodes.test_node_states_boot_mode ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_boot_mode ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_restrict_lookup ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookupScopedRBAC.test_restrict_lookup ... ok ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_not_admin ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_alloc_policy_and_retrieve_no_alloc_policy_not_found ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_alloc_policy_and_retrieve_no_alloc_policy_not_found ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_no_allocation ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_allocation_policy_and_retrieve_no_allocation ... ok ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api ironic.tests.unit.api.test_hooks.TestContextHook.test_context_hook_public_api ... ok ironic.tests.unit.api.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-93456c06-bd48-49b1-bb91-fe6e5af94321 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.65 {"uuid": "17504ef5-0d62-47f0-a560-c8a7801ccbff", "created_at": "2024-01-06T13:32:56.247646+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/17504ef5-0d62-47f0-a560-c8a7801ccbff", "rel": "self"}, {"href": "http://localhost/nodes/17504ef5-0d62-47f0-a560-c8a7801ccbff", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/17504ef5-0d62-47f0-a560-c8a7801ccbff/ports", "rel": "self"}, {"href": "http://localhost/nodes/17504ef5-0d62-47f0-a560-c8a7801ccbff/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/17504ef5-0d62-47f0-a560-c8a7801ccbff/states", "rel": "self"}, {"href": "http://localhost/nodes/17504ef5-0d62-47f0-a560-c8a7801ccbff/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/17504ef5-0d62-47f0-a560-c8a7801ccbff/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/17504ef5-0d62-47f0-a560-c8a7801ccbff/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/17504ef5-0d62-47f0-a560-c8a7801ccbff/volume", "rel": "self"}, {"href": "http://localhost/nodes/17504ef5-0d62-47f0-a560-c8a7801ccbff/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/4246ddc5-f083-49c0-ab7f-793da43843aa [{'path': '/lessee', 'value': 'new-project', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-dbc7c087-9d9a-4197-a064-4d44be8ee1e1 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/caba1519-188f-4a6e-b8a3-e4875a6cd40b [{'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-a51610ab-7809-4364-9225-c4379d6ddb2e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "caba1519-188f-4a6e-b8a3-e4875a6cd40b", "created_at": "2024-01-06T13:32:57.837081+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/caba1519-188f-4a6e-b8a3-e4875a6cd40b", "rel": "self"}, {"href": "http://localhost/nodes/caba1519-188f-4a6e-b8a3-e4875a6cd40b", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/caba1519-188f-4a6e-b8a3-e4875a6cd40b/ports", "rel": "self"}, {"href": "http://localhost/nodes/caba1519-188f-4a6e-b8a3-e4875a6cd40b/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/caba1519-188f-4a6e-b8a3-e4875a6cd40b/states", "rel": "self"}, {"href": "http://localhost/nodes/caba1519-188f-4a6e-b8a3-e4875a6cd40b/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/caba1519-188f-4a6e-b8a3-e4875a6cd40b/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/caba1519-188f-4a6e-b8a3-e4875a6cd40b/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/caba1519-188f-4a6e-b8a3-e4875a6cd40b/volume", "rel": "self"}, {"href": "http://localhost/nodes/caba1519-188f-4a6e-b8a3-e4875a6cd40b/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/63fc1c07-dc2a-4bd8-b9d7-5ee57a36c8fd [{'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_utils.TestCheckAllocationPolicyAndRetrieve.test_check_node_policy_and_retrieve ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllocationPolicyAndRetrieve.test_check_node_policy_and_retrieve ... ok ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_disabled ... ok ironic.tests.unit.api.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_utils.TestCheckAllowFields.test_allow_agent_token ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_agent_token ... ok ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled ironic.tests.unit.api.test_proxy_middleware.TestProxyHeadersMiddleware.test_proxy_headers_enabled ... ok ironic.tests.unit.api.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.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.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_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_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.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_utils.TestCheckAllowFields.test_allow_deploy_templates ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_deploy_templates ... ok ironic.tests.unit.api.controllers.v1.test_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.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_utils.TestCheckAllowFields.test_allow_dynamic_drivers ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_dynamic_drivers ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inject_nmi ... ok ironic.tests.unit.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.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_inspect_abort ... ok ironic.tests.unit.api.controllers.v1.test_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.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.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 Error while running foo: bar. GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f6fe82b3-982f-4049-9901-277907b3a546 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.66 {"uuid": "63fc1c07-dc2a-4bd8-b9d7-5ee57a36c8fd", "created_at": "2024-01-06T13:32:58.648319+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/63fc1c07-dc2a-4bd8-b9d7-5ee57a36c8fd", "rel": "self"}, {"href": "http://localhost/nodes/63fc1c07-dc2a-4bd8-b9d7-5ee57a36c8fd", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/63fc1c07-dc2a-4bd8-b9d7-5ee57a36c8fd/ports", "rel": "self"}, {"href": "http://localhost/nodes/63fc1c07-dc2a-4bd8-b9d7-5ee57a36c8fd/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/63fc1c07-dc2a-4bd8-b9d7-5ee57a36c8fd/states", "rel": "self"}, {"href": "http://localhost/nodes/63fc1c07-dc2a-4bd8-b9d7-5ee57a36c8fd/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/63fc1c07-dc2a-4bd8-b9d7-5ee57a36c8fd/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/63fc1c07-dc2a-4bd8-b9d7-5ee57a36c8fd/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/63fc1c07-dc2a-4bd8-b9d7-5ee57a36c8fd/volume", "rel": "self"}, {"href": "http://localhost/nodes/63fc1c07-dc2a-4bd8-b9d7-5ee57a36c8fd/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/2ef9a5d2-0964-44b8-ae9b-2981e84f2e35 [{'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-f07ffb18-e84b-4e2d-9833-0e09b97a2326 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/282e3553-60bc-4be0-865d-8d0a36d96053 [{'path': '/network_data', 'value': {'cat': 'meow'}, 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9e2604dd-c068-4265-a0fe-c8346df1740c 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/93ed1dc3-350c-4f35-8e81-acc17d8bc6f6 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] 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.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_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_node.TestListNodes.test_node_states_raid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_states_raid ... ok ironic.tests.unit.api.controllers.v1.test_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.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_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_node.TestPatch.test_update_network_interface_old_api ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_network_interface_old_api ... ok ironic.tests.unit.api.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.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_is_smartnic ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_no_pin ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_port_physical_network_pin ... ok ironic.tests.unit.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.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroup_mode_properties ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_ok ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_portgroups_subcontrollers ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_ramdisk_endpoints ... ok 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/3d758f4c-cda0-4fd3-ba6a-cfc345191644/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/9b4f1284-db5b-448a-b35b-50f4ccfc0d55/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-06T13:33:00.277768+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-06T13:33:00.277768+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/326d31c9-7a14-4dcc-9245-5eddf42cd021/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/f5ca0c06-cb70-4dad-814e-dcfebbc1f02e/states {} GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}, 'boot_mode': 'uefi', 'secure_boot': False} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} GOT:{'console_enabled': False, 'last_error': None, 'power_state': None, 'provision_state': 'available', 'target_power_state': None, 'target_provision_state': None, 'provision_updated_at': None, 'raid_config': {}, 'target_raid_config': {}, 'boot_mode': None, 'secure_boot': None} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_storage_interface_hidden_in_lower_version ... ok ironic.tests.unit.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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_migration_functions_two_calls_done ... ok ironic.tests.unit.api.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.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_utils.TestCheckAllowFields.test_allow_storage_interface ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_storage_interface ... 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 GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:33:01.850650+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-06T13:33:01.850650+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-06T13:33:02.275145+00:00', 'updated_at': None, 'boot_interface': None, 'clean_step': {}, 'console_enabled': False, 'console_interface': None, 'deploy_interface': None, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'inspect_interface': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'management_interface': None, 'name': None, 'network_interface': None, 'power_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'raid_interface': None, 'reservation': None, 'resource_class': None, 'storage_interface': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'vendor_interface': None, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}], 'portgroups': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_node_traits_hidden_in_lower_version ... ok ironic.tests.unit.api.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.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.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_exception ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_allow_volume ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_one ... 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.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_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_abort_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_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.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_utils.TestCheckAllowFields.test_check_allow_adopt_verbs ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs ... ok ironic.tests.unit.api.controllers.v1.test_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 "max-count" must be a positive value. ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_max_count_neg ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_adopt_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource ... ok ironic.tests.unit.api.controllers.v1.test_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.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_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_clean_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_portgroups_subresource_link ... ok ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test__run_online_data_migrations_with_options ... ok INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d9d9e96d-e829-459b-83f0-54061c441528 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "93ed1dc3-350c-4f35-8e81-acc17d8bc6f6", "created_at": "2024-01-06T13:33:00.204206+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/93ed1dc3-350c-4f35-8e81-acc17d8bc6f6", "rel": "self"}, {"href": "http://localhost/nodes/93ed1dc3-350c-4f35-8e81-acc17d8bc6f6", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/93ed1dc3-350c-4f35-8e81-acc17d8bc6f6/ports", "rel": "self"}, {"href": "http://localhost/nodes/93ed1dc3-350c-4f35-8e81-acc17d8bc6f6/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/93ed1dc3-350c-4f35-8e81-acc17d8bc6f6/states", "rel": "self"}, {"href": "http://localhost/nodes/93ed1dc3-350c-4f35-8e81-acc17d8bc6f6/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/93ed1dc3-350c-4f35-8e81-acc17d8bc6f6/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/93ed1dc3-350c-4f35-8e81-acc17d8bc6f6/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/93ed1dc3-350c-4f35-8e81-acc17d8bc6f6/volume", "rel": "self"}, {"href": "http://localhost/nodes/93ed1dc3-350c-4f35-8e81-acc17d8bc6f6/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/fd41db29-5543-4527-adb5-96aef8424170 [{'path': '/network_interface', 'value': 'flat', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-6ce56528-fc42-4608-90f0-7152240c5dfe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.15 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'path': '/instance_uuid', 'value': 'aaaaaaaa-1111-bbbb-2222-cccccccccccc', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dd9600ee-942e-40ae-a7c2-6346ab4953c7 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-06T13:33:01.387986+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-0f54e24c-7775-45c9-ae3c-bb2bf7196000 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-06T13:33:02.180997+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-e219806c-39b5-46e5-88a4-67c2fa9c4f23 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-06T13:33:03.007857+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/06de219d-60b0-4989-a4fe-bfe3700387e5 [{'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.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions ... 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.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 INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_bad ... ok ironic.tests.unit.api.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 INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models ironic.tests.unit.cmd.test_dbsync.OnlineMigrationTestCase.test_check_obj_versions_ignore_models ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_as_dict_invalid ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_allocation ... 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.TestCheckAllowFields.test_check_allow_configdrive_fails ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_fails ... ok This is badINFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:33:02.275145+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': '9ed65684-61b6-40c0-aef2-0909131c9c35', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/9ed65684-61b6-40c0-aef2-0909131c9c35', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9ed65684-61b6-40c0-aef2-0909131c9c35', 'rel': 'bookmark'}]}, {'uuid': 'fc7da917-6e17-4f4b-9dc9-830b3add579b', 'address': '52:54:00:cf:2d:31', 'name': 'pg-1', 'links': [{'href': 'http://localhost/v1/portgroups/fc7da917-6e17-4f4b-9dc9-830b3add579b', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fc7da917-6e17-4f4b-9dc9-830b3add579b', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups?limit=1 {} GOT:{'portgroups': [{'uuid': '9ed65684-61b6-40c0-aef2-0909131c9c35', 'address': '52:54:00:cf:2d:30', 'name': 'pg-0', 'links': [{'href': 'http://localhost/v1/portgroups/9ed65684-61b6-40c0-aef2-0909131c9c35', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9ed65684-61b6-40c0-aef2-0909131c9c35', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=1&marker=9ed65684-61b6-40c0-aef2-0909131c9c35'} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:33:04.230028+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-06T13:33:04.561618+00:00', 'updated_at': None, 'clean_step': {}, 'console_enabled': False, 'driver': 'fake-hardware', 'driver_info': {'foo': 'bar', 'fake_password': '******'}, 'driver_internal_info': {'private_state': 'secret value'}, 'extra': {}, 'inspection_finished_at': None, 'inspection_started_at': None, 'instance_info': {'configdrive': '******', 'image_url': '******', 'foo': 'bar'}, 'instance_uuid': None, 'last_error': None, 'maintenance': False, 'maintenance_reason': None, 'name': None, 'network_interface': None, 'power_state': None, 'properties': {'cpu_arch': 'x86_64', 'cpus': '8', 'local_gb': '10', 'memory_mb': '4096'}, 'provision_state': 'available', 'provision_updated_at': None, 'raid_config': {}, 'reservation': None, 'target_power_state': None, 'target_provision_state': None, 'target_raid_config': {}, 'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'rel': 'bookmark'}], 'chassis_uuid': None, 'ports': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports', 'rel': 'bookmark'}], 'states': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_vendor_data_failed ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_configdrive_vendor_data_failed ... ok ironic.tests.unit.api.controllers.v1.test_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.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_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.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_empty ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_empty ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_old_api ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_target_unsupported ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_target_unsupported ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_link ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_version_older ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_steps_version_older ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_node_not_found ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs_fail ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_deploy_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_noid ... ok ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions ironic.tests.unit.cmd.test_status.TestUpgradeChecks.test__check_obj_versions ... ok ironic.tests.unit.api.controllers.v1.test_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: 200 OK Content-Type: application/json Openstack-Request-Id: req-c67c12cf-21d2-4ee4-af25-bfc7917ba54e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "06de219d-60b0-4989-a4fe-bfe3700387e5", "created_at": "2024-01-06T13:33:04.054238+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/06de219d-60b0-4989-a4fe-bfe3700387e5", "rel": "self"}, {"href": "http://localhost/nodes/06de219d-60b0-4989-a4fe-bfe3700387e5", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/06de219d-60b0-4989-a4fe-bfe3700387e5/ports", "rel": "self"}, {"href": "http://localhost/nodes/06de219d-60b0-4989-a4fe-bfe3700387e5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/06de219d-60b0-4989-a4fe-bfe3700387e5/states", "rel": "self"}, {"href": "http://localhost/nodes/06de219d-60b0-4989-a4fe-bfe3700387e5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/06de219d-60b0-4989-a4fe-bfe3700387e5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/06de219d-60b0-4989-a4fe-bfe3700387e5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/06de219d-60b0-4989-a4fe-bfe3700387e5/volume", "rel": "self"}, {"href": "http://localhost/nodes/06de219d-60b0-4989-a4fe-bfe3700387e5/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/141d10d3-ea06-41a8-9b41-add44ab0f1fe [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-518a119f-1641-4bde-b65b-69fa467e5937 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "141d10d3-ea06-41a8-9b41-add44ab0f1fe", "created_at": "2024-01-06T13:33:04.909723+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/141d10d3-ea06-41a8-9b41-add44ab0f1fe", "rel": "self"}, {"href": "http://localhost/nodes/141d10d3-ea06-41a8-9b41-add44ab0f1fe", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/141d10d3-ea06-41a8-9b41-add44ab0f1fe/ports", "rel": "self"}, {"href": "http://localhost/nodes/141d10d3-ea06-41a8-9b41-add44ab0f1fe/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/141d10d3-ea06-41a8-9b41-add44ab0f1fe/states", "rel": "self"}, {"href": "http://localhost/nodes/141d10d3-ea06-41a8-9b41-add44ab0f1fe/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/141d10d3-ea06-41a8-9b41-add44ab0f1fe/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/141d10d3-ea06-41a8-9b41-add44ab0f1fe/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/141d10d3-ea06-41a8-9b41-add44ab0f1fe/volume", "rel": "self"}, {"href": "http://localhost/nodes/141d10d3-ea06-41a8-9b41-add44ab0f1fe/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/275d8570-0dc8-49d3-aaaf-1c6943524c50 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-ec2767a4-30c2-4db3-9dcb-fe12b0051d58 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 \\\"275d8570-0dc8-49d3-aaaf-1c6943524c50\\\" while it is allocated to an allocation with an owner.\", \"debuginfo\": null}"} PATCH: /v1/nodes/9ec0d851-3110-4545-94b3-3a474d5be4db [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7c54bb76-ccd0-4a7a-abfd-41e3c70d20e7 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/40dc475f-d8c9-4b99-9239-7b9a3bde15e5 [{'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.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_utils.TestCheckAllowFields.test_check_allow_driver_detail_false ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_driver_detail_false ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_ports_subresource_via_portgroups_subres_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_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.common.test_args.ValidatePatchSchemaTest.test_patch ironic.tests.unit.common.test_args.ValidatePatchSchemaTest.test_patch ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned_forbidden ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_owner_provisioned_forbidden ... ok ironic.tests.unit.api.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.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.TestListNodes.test_sort_key ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key ... 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_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_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.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_node.TestListNodes.test_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_allowed ... ok ironic.tests.unit.api.controllers.v1.test_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.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_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_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.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_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.common.test_context.RequestContextTestCase.test_from_dict_older_api_server ironic.tests.unit.common.test_context.RequestContextTestCase.test_from_dict_older_api_server ... ok GOT:{'ports': [{'uuid': '03e175af-34bd-4fd3-bb22-6289f0d2aa2e', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/03e175af-34bd-4fd3-bb22-6289f0d2aa2e', 'rel': 'self'}, {'href': 'http://localhost/ports/03e175af-34bd-4fd3-bb22-6289f0d2aa2e', 'rel': 'bookmark'}]}, {'uuid': 'c49a69bc-9baf-46c6-961f-b29f78cd2a7c', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/c49a69bc-9baf-46c6-961f-b29f78cd2a7c', 'rel': 'self'}, {'href': 'http://localhost/ports/c49a69bc-9baf-46c6-961f-b29f78cd2a7c', 'rel': 'bookmark'}]}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports?limit=1 {} GOT:{'ports': [{'uuid': '03e175af-34bd-4fd3-bb22-6289f0d2aa2e', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/03e175af-34bd-4fd3-bb22-6289f0d2aa2e', 'rel': 'self'}, {'href': 'http://localhost/ports/03e175af-34bd-4fd3-bb22-6289f0d2aa2e', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=03e175af-34bd-4fd3-bb22-6289f0d2aa2e'} 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\"}"} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'created_at': '2024-01-06T13:33:06.105293+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-d71263c6-329e-4665-97c2-24fcc3748d1c X-Openstack-Ironic-Api-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-824edad4-1b2f-4d86-aae7-0b652a4bdc7d 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': '3da85a14-01e7-4850-a8f5-6af51c82485e', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/3da85a14-01e7-4850-a8f5-6af51c82485e', 'rel': 'self'}, {'href': 'http://localhost/nodes/3da85a14-01e7-4850-a8f5-6af51c82485e', 'rel': 'bookmark'}]}, {'uuid': 'b2748099-5ebd-4cd2-ae26-9d0c7cc134c6', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/b2748099-5ebd-4cd2-ae26-9d0c7cc134c6', 'rel': 'self'}, {'href': 'http://localhost/nodes/b2748099-5ebd-4cd2-ae26-9d0c7cc134c6', 'rel': 'bookmark'}]}, {'uuid': 'c4ce4dc0-6035-425a-9528-493bb5b09dfc', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/c4ce4dc0-6035-425a-9528-493bb5b09dfc', 'rel': 'self'}, {'href': 'http://localhost/nodes/c4ce4dc0-6035-425a-9528-493bb5b09dfc', 'rel': 'bookmark'}]}]} GET: /v1/nodes?sort_key=resource_class {} GOT:{'nodes': [{'uuid': '80dd786e-4eeb-4636-8cb3-3ef971ac6601', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/80dd786e-4eeb-4636-8cb3-3ef971ac6601', 'rel': 'self'}, {'href': 'http://localhost/nodes/80dd786e-4eeb-4636-8cb3-3ef971ac6601', 'rel': 'bookmark'}]}, {'uuid': 'e85fb7ec-45ef-4fda-9164-5ffb5235d137', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/e85fb7ec-45ef-4fda-9164-5ffb5235d137', 'rel': 'self'}, {'href': 'http://localhost/nodes/e85fb7ec-45ef-4fda-9164-5ffb5235d137', 'rel': 'bookmark'}]}, {'uuid': '486714fa-c91e-493a-8524-35187003e2a3', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': 'available', 'name': None, 'links': [{'href': 'http://localhost/v1/nodes/486714fa-c91e-493a-8524-35187003e2a3', 'rel': 'self'}, {'href': 'http://localhost/nodes/486714fa-c91e-493a-8524-35187003e2a3', 'rel': 'bookmark'}]}]} GET: /v1/nodes?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d0114285-3360-48bd-a766-28f5c1200e71 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-59a7ad68-bc8d-49a6-a4c2-de351a607d0b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value properties is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=driver_info {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-c670b4d8-e1b8-43ce-ab46-7553d31404ec X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-5f9e4830-153e-4c65-975e-fc3e81b1daaa X-Openstack-Ironic-Api-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 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4b077f7b-5526-47bf-b99e-8773c994342d X-Openstack-Ironic-Api-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.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_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_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.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.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.TestListNodes.test_sort_key_not_allowed ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_sort_key_not_allowed ... 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_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_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_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_manage_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2d41c9eb-967d-48bb-841d-db60ab638620 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.50 {"uuid": "40dc475f-d8c9-4b99-9239-7b9a3bde15e5", "created_at": "2024-01-06T13:33:06.478440+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/40dc475f-d8c9-4b99-9239-7b9a3bde15e5", "rel": "self"}, {"href": "http://localhost/nodes/40dc475f-d8c9-4b99-9239-7b9a3bde15e5", "rel": "bookmark"}], "conductor": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/40dc475f-d8c9-4b99-9239-7b9a3bde15e5/ports", "rel": "self"}, {"href": "http://localhost/nodes/40dc475f-d8c9-4b99-9239-7b9a3bde15e5/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/40dc475f-d8c9-4b99-9239-7b9a3bde15e5/states", "rel": "self"}, {"href": "http://localhost/nodes/40dc475f-d8c9-4b99-9239-7b9a3bde15e5/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/40dc475f-d8c9-4b99-9239-7b9a3bde15e5/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/40dc475f-d8c9-4b99-9239-7b9a3bde15e5/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/40dc475f-d8c9-4b99-9239-7b9a3bde15e5/volume", "rel": "self"}, {"href": "http://localhost/nodes/40dc475f-d8c9-4b99-9239-7b9a3bde15e5/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/c24d86af-20c5-4c29-a056-0acc8a0ef259 [{'path': '/owner', 'value': 'meow', 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-0f10a1db-c0d2-463c-9378-016dafbd8097 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 \\\"c24d86af-20c5-4c29-a056-0acc8a0ef259\\\" while it is in state \\\"active\\\".\", \"debuginfo\": null}"} PATCH: /v1/nodes/edc4ca5c-e5a7-44e8-aa6e-8063de952aab [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-74a869b3-1a84-4d8e-97e1-dd7399af1ce4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "edc4ca5c-e5a7-44e8-aa6e-8063de952aab", "created_at": "2024-01-06T13:33:07.740550+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/edc4ca5c-e5a7-44e8-aa6e-8063de952aab", "rel": "self"}, {"href": "http://localhost/nodes/edc4ca5c-e5a7-44e8-aa6e-8063de952aab", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/edc4ca5c-e5a7-44e8-aa6e-8063de952aab/ports", "rel": "self"}, {"href": "http://localhost/nodes/edc4ca5c-e5a7-44e8-aa6e-8063de952aab/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/edc4ca5c-e5a7-44e8-aa6e-8063de952aab/states", "rel": "self"}, {"href": "http://localhost/nodes/edc4ca5c-e5a7-44e8-aa6e-8063de952aab/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/edc4ca5c-e5a7-44e8-aa6e-8063de952aab/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/edc4ca5c-e5a7-44e8-aa6e-8063de952aab/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/edc4ca5c-e5a7-44e8-aa6e-8063de952aab/volume", "rel": "self"}, {"href": "http://localhost/nodes/edc4ca5c-e5a7-44e8-aa6e-8063de952aab/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/93d71f01-2cc7-45b1-8e60-92cea151b67b [{'path': '/protected', 'value': True, 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-7b14b3bb-7a5f-4db5-a52a-f72415f75389 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/3e85b9b5-f5c5-49aa-988b-97e89a46fc58 [{'path': '/protected_reason', 'value': 'reason!', 'op': 'replace'}] ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_protected_reason ... ok ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_fallback ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allow_provide_verbs_fail ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_unassociated_nodes_insensitive ... ok ironic.tests.unit.common.test_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_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_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.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_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.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_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.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.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_calculated_with_two ironic.tests.unit.common.test_driver_factory.DefaultInterfaceTestCase.test_calculated_with_two ... 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.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.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.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_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.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.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.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.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.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_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_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_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.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.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_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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-78b4c663-9190-4ac2-bac3-0c9cfbe139fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "3e85b9b5-f5c5-49aa-988b-97e89a46fc58", "created_at": "2024-01-06T13:33:08.887563+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/3e85b9b5-f5c5-49aa-988b-97e89a46fc58", "rel": "self"}, {"href": "http://localhost/nodes/3e85b9b5-f5c5-49aa-988b-97e89a46fc58", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/3e85b9b5-f5c5-49aa-988b-97e89a46fc58/ports", "rel": "self"}, {"href": "http://localhost/nodes/3e85b9b5-f5c5-49aa-988b-97e89a46fc58/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/3e85b9b5-f5c5-49aa-988b-97e89a46fc58/states", "rel": "self"}, {"href": "http://localhost/nodes/3e85b9b5-f5c5-49aa-988b-97e89a46fc58/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/3e85b9b5-f5c5-49aa-988b-97e89a46fc58/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/3e85b9b5-f5c5-49aa-988b-97e89a46fc58/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/3e85b9b5-f5c5-49aa-988b-97e89a46fc58/volume", "rel": "self"}, {"href": "http://localhost/nodes/3e85b9b5-f5c5-49aa-988b-97e89a46fc58/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/9758a1cc-0aea-4ed4-a4b7-510ab7e63d2e [{'op': 'remove', 'path': '/protected'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5741ad42-042d-4561-b0d3-bd7effb49197 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "9758a1cc-0aea-4ed4-a4b7-510ab7e63d2e", "created_at": "2024-01-06T13:33:09.674765+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/9758a1cc-0aea-4ed4-a4b7-510ab7e63d2e", "rel": "self"}, {"href": "http://localhost/nodes/9758a1cc-0aea-4ed4-a4b7-510ab7e63d2e", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/9758a1cc-0aea-4ed4-a4b7-510ab7e63d2e/ports", "rel": "self"}, {"href": "http://localhost/nodes/9758a1cc-0aea-4ed4-a4b7-510ab7e63d2e/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/9758a1cc-0aea-4ed4-a4b7-510ab7e63d2e/states", "rel": "self"}, {"href": "http://localhost/nodes/9758a1cc-0aea-4ed4-a4b7-510ab7e63d2e/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/9758a1cc-0aea-4ed4-a4b7-510ab7e63d2e/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/9758a1cc-0aea-4ed4-a4b7-510ab7e63d2e/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/9758a1cc-0aea-4ed4-a4b7-510ab7e63d2e/volume", "rel": "self"}, {"href": "http://localhost/nodes/9758a1cc-0aea-4ed4-a4b7-510ab7e63d2e/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/8052ed9f-dcb3-4a9c-934b-dfe87625a3b4 [{'path': '/protected', 'value': 'True', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ab8526b3-beeb-4201-9b3f-096d0d03a01a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "8052ed9f-dcb3-4a9c-934b-dfe87625a3b4", "created_at": "2024-01-06T13:33:10.803342+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/8052ed9f-dcb3-4a9c-934b-dfe87625a3b4", "rel": "self"}, {"href": "http://localhost/nodes/8052ed9f-dcb3-4a9c-934b-dfe87625a3b4", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/8052ed9f-dcb3-4a9c-934b-dfe87625a3b4/ports", "rel": "self"}, {"href": "http://localhost/nodes/8052ed9f-dcb3-4a9c-934b-dfe87625a3b4/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/8052ed9f-dcb3-4a9c-934b-dfe87625a3b4/states", "rel": "self"}, {"href": "http://localhost/nodes/8052ed9f-dcb3-4a9c-934b-dfe87625a3b4/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/8052ed9f-dcb3-4a9c-934b-dfe87625a3b4/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/8052ed9f-dcb3-4a9c-934b-dfe87625a3b4/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/8052ed9f-dcb3-4a9c-934b-dfe87625a3b4/volume", "rel": "self"}, {"href": "http://localhost/nodes/8052ed9f-dcb3-4a9c-934b-dfe87625a3b4/volume", "rel": "bookmark"}]} 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_volume_connectors_subresource ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource ... 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.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_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported ironic.tests.unit.common.test_driver_factory.WarnUnsupportedDriversTestCase.test__warn_if_unsupported_with_supported ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class ironic.tests.unit.api.controllers.v1.test_utils.TestCheckAllowFields.test_check_allowed_fields_resource_class ... ok ironic.tests.unit.common.test_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.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_connectors_subresource_node_not_found ... ok ironic.tests.unit.api.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_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_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_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.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth ironic.tests.unit.common.test_glance_service.CheckImageServiceTestCase.test_check_image_service__no_auth ... ok ironic.tests.unit.api.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_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_utils.TestVendorPassthru.test_check_policy ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy ... 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_utils.TestVendorPassthru.test_check_policy_forbidden ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_check_policy_forbidden ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_driver_vendor_passthru_async ... ok ironic.tests.unit.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.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 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-25ebedf5-c2ce-46ff-9057-d8fd9f123615 X-Openstack-Ironic-Api-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-2485d11d-40ad-44b0-bc6f-1066f5c9405f X-Openstack-Ironic-Api-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-605bd4da-38e9-4657-b10a-a7329ee06acb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value traits is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/nodes?sort_key=resource_class {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d953cb3e-e114-4840-b63a-7657c5a58ad5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.20 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/nodes?associated=false {} GOT:{'nodes': [{'uuid': '769b67e5-9fc2-4d1e-bfe2-395d4deda374', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/769b67e5-9fc2-4d1e-bfe2-395d4deda374', 'rel': 'self'}, {'href': 'http://localhost/nodes/769b67e5-9fc2-4d1e-bfe2-395d4deda374', 'rel': 'bookmark'}]}, {'uuid': '51b2800a-787d-48c4-92c3-001e8fcaa4bb', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/51b2800a-787d-48c4-92c3-001e8fcaa4bb', 'rel': 'self'}, {'href': 'http://localhost/nodes/51b2800a-787d-48c4-92c3-001e8fcaa4bb', 'rel': 'bookmark'}]}, {'uuid': 'f272882b-4923-4c47-8e8e-6d56f968bb0d', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/f272882b-4923-4c47-8e8e-6d56f968bb0d', 'rel': 'self'}, {'href': 'http://localhost/nodes/f272882b-4923-4c47-8e8e-6d56f968bb0d', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=FALSE {} GOT:{'nodes': [{'uuid': '769b67e5-9fc2-4d1e-bfe2-395d4deda374', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/769b67e5-9fc2-4d1e-bfe2-395d4deda374', 'rel': 'self'}, {'href': 'http://localhost/nodes/769b67e5-9fc2-4d1e-bfe2-395d4deda374', 'rel': 'bookmark'}]}, {'uuid': '51b2800a-787d-48c4-92c3-001e8fcaa4bb', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/51b2800a-787d-48c4-92c3-001e8fcaa4bb', 'rel': 'self'}, {'href': 'http://localhost/nodes/51b2800a-787d-48c4-92c3-001e8fcaa4bb', 'rel': 'bookmark'}]}, {'uuid': 'f272882b-4923-4c47-8e8e-6d56f968bb0d', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/f272882b-4923-4c47-8e8e-6d56f968bb0d', 'rel': 'self'}, {'href': 'http://localhost/nodes/f272882b-4923-4c47-8e8e-6d56f968bb0d', 'rel': 'bookmark'}]}]} GET: /v1/nodes?associated=False&limit=2 {} GOT:{'nodes': [{'uuid': 'f66f1714-7f5c-4282-8561-1b8f319bfc72', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/f66f1714-7f5c-4282-8561-1b8f319bfc72', 'rel': 'self'}, {'href': 'http://localhost/nodes/f66f1714-7f5c-4282-8561-1b8f319bfc72', 'rel': 'bookmark'}]}, {'uuid': '46ae6b1a-a55e-4ea4-8481-3e561c8b1ef0', 'instance_uuid': None, 'maintenance': False, 'power_state': None, 'provision_state': None, 'links': [{'href': 'http://localhost/v1/nodes/46ae6b1a-a55e-4ea4-8481-3e561c8b1ef0', 'rel': 'self'}, {'href': 'http://localhost/nodes/46ae6b1a-a55e-4ea4-8481-3e561c8b1ef0', '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=46ae6b1a-a55e-4ea4-8481-3e561c8b1ef0'} 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-8ef8041d-f42f-4cdc-b22b-05dd4e74eaf9 X-Openstack-Ironic-Api-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': 'eeca4f7d-2941-4f56-92d5-3025992dfb2a', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/eeca4f7d-2941-4f56-92d5-3025992dfb2a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/eeca4f7d-2941-4f56-92d5-3025992dfb2a', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'ce50ca1c-e4d5-45dc-a3d4-ebd353b78362', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/ce50ca1c-e4d5-45dc-a3d4-ebd353b78362', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ce50ca1c-e4d5-45dc-a3d4-ebd353b78362', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors?limit=1 {} GOT:{'connectors': [{'uuid': 'eeca4f7d-2941-4f56-92d5-3025992dfb2a', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/eeca4f7d-2941-4f56-92d5-3025992dfb2a', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/eeca4f7d-2941-4f56-92d5-3025992dfb2a', '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=eeca4f7d-2941-4f56-92d5-3025992dfb2a'} GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-82e70ff4-c231-4a6b-8cf5-7f80844d71dc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} GET: /v1/nodes/volume/connectors {} GOT:Response: 404 Not Found 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 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_utils.TestVendorPassthru.test_get_controller_reserved_names ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_get_controller_reserved_names ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_method_not_specified ... ok ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_invalid_api_version ... ok ironic.tests.unit.common.test_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_utils.TestVendorPassthru.test_vendor_passthru_async ironic.tests.unit.api.controllers.v1.test_utils.TestVendorPassthru.test_vendor_passthru_async ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_resource_class ... 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.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_volume_subresource_link ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_subresource_link ... 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_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.common.test_glance_service.TestGlanceImageService.test_download_file_url ironic.tests.unit.common.test_glance_service.TestGlanceImageService.test_download_file_url ... ok ironic.tests.unit.api.controllers.v1.test_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_volume_targets_subresource ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource ... 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_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_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.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.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.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_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.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid ironic.tests.unit.api.controllers.v1.test_node.TestListNodes.test_volume_targets_subresource_noid ... ok ironic.tests.unit.api.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.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_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.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.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_port.TestPost.test_create_port ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test__validate_temp_url_endpoint_less_than_download_delay ... ok ironic.tests.unit.api.controllers.v1.test_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.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 PATCH: /v1/nodes/4c0a0c2b-5772-453b-a146-d70793f87e1f [{'path': '/protected', 'value': 'YeahNahGood', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5a3d3e35-0f21-46c0-98cc-bd2132c67a4a 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/6c393cb7-685e-49b5-bf57-e99a0ce05fe0 [{'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-8a8daa2c-febc-481a-a5a9-bd1f51af4a13 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.48 {"uuid": "6c393cb7-685e-49b5-bf57-e99a0ce05fe0", "created_at": "2024-01-06T13:33:12.620906+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/6c393cb7-685e-49b5-bf57-e99a0ce05fe0", "rel": "self"}, {"href": "http://localhost/nodes/6c393cb7-685e-49b5-bf57-e99a0ce05fe0", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/6c393cb7-685e-49b5-bf57-e99a0ce05fe0/ports", "rel": "self"}, {"href": "http://localhost/nodes/6c393cb7-685e-49b5-bf57-e99a0ce05fe0/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/6c393cb7-685e-49b5-bf57-e99a0ce05fe0/states", "rel": "self"}, {"href": "http://localhost/nodes/6c393cb7-685e-49b5-bf57-e99a0ce05fe0/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/6c393cb7-685e-49b5-bf57-e99a0ce05fe0/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/6c393cb7-685e-49b5-bf57-e99a0ce05fe0/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/6c393cb7-685e-49b5-bf57-e99a0ce05fe0/volume", "rel": "self"}, {"href": "http://localhost/nodes/6c393cb7-685e-49b5-bf57-e99a0ce05fe0/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/ff3cb5c5-722a-4941-bb1c-1dc394f0cd9c [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4daaf749-88dd-4c39-a455-03067ba4f526 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "ff3cb5c5-722a-4941-bb1c-1dc394f0cd9c", "created_at": "2024-01-06T13:33:13.342320+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/ff3cb5c5-722a-4941-bb1c-1dc394f0cd9c", "rel": "self"}, {"href": "http://localhost/nodes/ff3cb5c5-722a-4941-bb1c-1dc394f0cd9c", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/ff3cb5c5-722a-4941-bb1c-1dc394f0cd9c/ports", "rel": "self"}, {"href": "http://localhost/nodes/ff3cb5c5-722a-4941-bb1c-1dc394f0cd9c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/ff3cb5c5-722a-4941-bb1c-1dc394f0cd9c/states", "rel": "self"}, {"href": "http://localhost/nodes/ff3cb5c5-722a-4941-bb1c-1dc394f0cd9c/states", "rel": "bookmark"}]} PATCH: /v1/nodes/c463cf9a-8e2d-4a75-99de-243cd0298206 [{'path': '/resource_class', 'value': 'ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-beb1a821-bf3c-4869-af35-9309a74c228a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.21 {"uuid": "c463cf9a-8e2d-4a75-99de-243cd0298206", "created_at": "2024-01-06T13:33:14.349036+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/c463cf9a-8e2d-4a75-99de-243cd0298206", "rel": "self"}, {"href": "http://localhost/nodes/c463cf9a-8e2d-4a75-99de-243cd0298206", "rel": "bookmark"}], "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/c463cf9a-8e2d-4a75-99de-243cd0298206/ports", "rel": "self"}, {"href": "http://localhost/nodes/c463cf9a-8e2d-4a75-99de-243cd0298206/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/c463cf9a-8e2d-4a75-99de-243cd0298206/states", "rel": "self"}, {"href": "http://localhost/nodes/c463cf9a-8e2d-4a75-99de-243cd0298206/states", "rel": "bookmark"}]} PATCH: /v1/nodes/49dff6e8-76e0-4891-a107-47412361d0c0 [{'path': '/resource_class', 'value': 'foo', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fc84a1f0-8a76-4583-bb41-753a7832bce4 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/27ccbadc-0b1e-4039-969f-11d8fe70786f [{'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.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 GOT:{'links': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/', 'rel': 'bookmark'}], 'connectors': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors', 'rel': 'bookmark'}], 'targets': [{'href': 'http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets', 'rel': 'self'}, {'href': 'http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets', 'rel': 'bookmark'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-270a1f7e-b448-4f28-96bc-28d05ae0f79f 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-06T13:33:13.930165+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': 'a7f11ad8-b4fd-42e8-899b-c28296f7940a', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/a7f11ad8-b4fd-42e8-899b-c28296f7940a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a7f11ad8-b4fd-42e8-899b-c28296f7940a', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'b3eeee6b-1842-4199-89e3-f53959fc474d', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/b3eeee6b-1842-4199-89e3-f53959fc474d', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/b3eeee6b-1842-4199-89e3-f53959fc474d', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets?limit=1 {} GOT:{'targets': [{'uuid': 'a7f11ad8-b4fd-42e8-899b-c28296f7940a', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/a7f11ad8-b4fd-42e8-899b-c28296f7940a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/a7f11ad8-b4fd-42e8-899b-c28296f7940a', '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=a7f11ad8-b4fd-42e8-899b-c28296f7940a'} GET: /v1/nodes/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c507be83-148e-4049-a19f-b7894d31d734 X-Openstack-Ironic-Api-Maximum-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/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-1fe94d82-4517-4751-8445-a8eccc10c895 X-Openstack-Ironic-Api-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'} 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.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url ... ok GOT:{'node': {'uuid': '9e79eda2-f919-478d-a310-b9e2352a76ad', '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/9e79eda2-f919-478d-a310-b9e2352a76ad', 'rel': 'self'}, {'href': 'http://localhost/nodes/9e79eda2-f919-478d-a310-b9e2352a76ad', '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=a4d0fb63-3fcf-49a3-8fdc-76ada0433dfa {} GOT:{'node': {'uuid': 'a4d0fb63-3fcf-49a3-8fdc-76ada0433dfa', '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/a4d0fb63-3fcf-49a3-8fdc-76ada0433dfa', 'rel': 'self'}, {'href': 'http://localhost/nodes/a4d0fb63-3fcf-49a3-8fdc-76ada0433dfa', '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-e40557b6-a761-424b-a5ff-e9c2565a9321 X-Openstack-Ironic-Api-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-bb3e59ec-618e-450e-ab40-e9219388ce1a X-Openstack-Ironic-Api-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-5db4d237-5946-4a58-bbb4-ea1ec3f9ae1a X-Openstack-Ironic-Api-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=e3a71a42-f414-4643-809f-fa4cdbe1a27d {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f7c603db-33c3-4223-ba8f-c40c1ed70311 X-Openstack-Ironic-Api-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': '685276b4-36e5-44a7-83f1-ca6cf8005674', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/685276b4-36e5-44a7-83f1-ca6cf8005674', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/685276b4-36e5-44a7-83f1-ca6cf8005674', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '5c36b1b6-eb97-4d46-80d7-54a80755cc53', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/5c36b1b6-eb97-4d46-80d7-54a80755cc53', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/5c36b1b6-eb97-4d46-80d7-54a80755cc53', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '7d8f1124-aa7c-42b4-b706-994c6cf7268c', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/7d8f1124-aa7c-42b4-b706-994c6cf7268c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/7d8f1124-aa7c-42b4-b706-994c6cf7268c', '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=7d8f1124-aa7c-42b4-b706-994c6cf7268c'} GET: /v1/volume/connectors?fields=uuid,extra {} GOT:{'connectors': [{'uuid': '452640da-0ba0-4e9f-b8e2-c452790cac5f', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/452640da-0ba0-4e9f-b8e2-c452790cac5f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/452640da-0ba0-4e9f-b8e2-c452790cac5f', 'rel': 'bookmark'}]}, {'uuid': '916985a3-3354-479b-a113-ace3b7a8b792', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/916985a3-3354-479b-a113-ace3b7a8b792', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/916985a3-3354-479b-a113-ace3b7a8b792', 'rel': 'bookmark'}]}, {'uuid': '704c1262-86c1-4eb3-8163-8a817874dc38', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/704c1262-86c1-4eb3-8163-8a817874dc38', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/704c1262-86c1-4eb3-8163-8a817874dc38', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=704c1262-86c1-4eb3-8163-8a817874dc38'} GET: /v1/volume/connectors {} GOT:{'connectors': [{'uuid': '33c5f6c2-c1d3-4c57-8872-5849044f458e', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/33c5f6c2-c1d3-4c57-8872-5849044f458e', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/33c5f6c2-c1d3-4c57-8872-5849044f458e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '70916832-d3e0-4dcf-86f1-81d722c47947', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/70916832-d3e0-4dcf-86f1-81d722c47947', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/70916832-d3e0-4dcf-86f1-81d722c47947', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '43182574-1d34-49e4-9e86-5b59753d9308', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/43182574-1d34-49e4-9e86-5b59753d9308', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/43182574-1d34-49e4-9e86-5b59753d9308', '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=43182574-1d34-49e4-9e86-5b59753d9308'} GET: /v1/volume/connectors?detail=True&limit=3 {} 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_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected ... ok ironic.tests.unit.api.controllers.v1.test_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_volume_connector.TestListVolumeConnectors.test_detail ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired ... ok ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix_underscore ironic.tests.unit.common.test_glance_service.TestGlanceSwiftTempURL.test_swift_temp_url_account_detected_with_prefix_underscore ... ok ironic.tests.unit.api.controllers.v1.test_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_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.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_doesnt_contain_id ... ok ironic.tests.unit.api.controllers.v1.test_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.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.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_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_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_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_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.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_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_volume_connector.TestListVolumeConnectors.test_detail_false ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_detail_false ... ok ironic.tests.unit.common.test_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.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.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.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 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-aa35c037-3562-41c9-9090-e01a7edaa018 X-Openstack-Ironic-Api-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 Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-b85cea64-a22c-4262-808f-b00568e96482 X-Openstack-Ironic-Api-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-06T13:33:16.698254+00:00", "updated_at": null, "address": "aa:bb:cc:dd:ee:ff", "extra": {}, "internal_info": {}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T13:33:16.698254+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 Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-f95fd38e-5eff-445e-bfea-235349208053 X-Openstack-Ironic-Api-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-06T13:33:17.256412+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-06T13:33:17.256412+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-a817c1e4-8b18-4648-a779-b35cac18251d X-Openstack-Ironic-Api-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 Content-Type: application/json Location: http://localhost/v1/ports/ac5331e0-8064-4dc2-ab11-0f80071c7330 Openstack-Request-Id: req-9e84fcfe-8033-423b-a25f-104830cb9d44 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "ac5331e0-8064-4dc2-ab11-0f80071c7330", "created_at": "2024-01-06T13:33:18.419381+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/ac5331e0-8064-4dc2-ab11-0f80071c7330", "rel": "self"}, {"href": "http://localhost/ports/ac5331e0-8064-4dc2-ab11-0f80071c7330", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4"} GET: /v1/ports/ac5331e0-8064-4dc2-ab11-0f80071c7330 {} GOT:{'uuid': 'ac5331e0-8064-4dc2-ab11-0f80071c7330', 'created_at': '2024-01-06T13:33:18.419381+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/ac5331e0-8064-4dc2-ab11-0f80071c7330', 'rel': 'self'}, {'href': 'http://localhost/ports/ac5331e0-8064-4dc2-ab11-0f80071c7330', '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.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_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 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bf6ef447-0589-4810-9d90-3801d9d85473 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/d3d019da-9e4d-4990-a513-722b5a76691c [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-49924a06-08b5-45b1-98e2-c4adb1a29789 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "d3d019da-9e4d-4990-a513-722b5a76691c", "created_at": "2024-01-06T13:33:16.532937+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/d3d019da-9e4d-4990-a513-722b5a76691c", "rel": "self"}, {"href": "http://localhost/nodes/d3d019da-9e4d-4990-a513-722b5a76691c", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/d3d019da-9e4d-4990-a513-722b5a76691c/ports", "rel": "self"}, {"href": "http://localhost/nodes/d3d019da-9e4d-4990-a513-722b5a76691c/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/d3d019da-9e4d-4990-a513-722b5a76691c/states", "rel": "self"}, {"href": "http://localhost/nodes/d3d019da-9e4d-4990-a513-722b5a76691c/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/d3d019da-9e4d-4990-a513-722b5a76691c/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/d3d019da-9e4d-4990-a513-722b5a76691c/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/d3d019da-9e4d-4990-a513-722b5a76691c/volume", "rel": "self"}, {"href": "http://localhost/nodes/d3d019da-9e4d-4990-a513-722b5a76691c/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/ac5a05d3-2af2-4506-884f-14b1aa702923 [{'path': '/retired', 'value': True, 'op': 'replace'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-d7fd46bf-3e4c-4772-ad91-9299f9038051 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/48155bfb-c672-4eb4-890d-eb060985c453 [{'path': '/retired_reason', 'value': 'a better reason', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9a069893-0c40-46ad-bb29-091b16036264 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "48155bfb-c672-4eb4-890d-eb060985c453", "created_at": "2024-01-06T13:33:17.787270+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/48155bfb-c672-4eb4-890d-eb060985c453", "rel": "self"}, {"href": "http://localhost/nodes/48155bfb-c672-4eb4-890d-eb060985c453", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/48155bfb-c672-4eb4-890d-eb060985c453/ports", "rel": "self"}, {"href": "http://localhost/nodes/48155bfb-c672-4eb4-890d-eb060985c453/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/48155bfb-c672-4eb4-890d-eb060985c453/states", "rel": "self"}, {"href": "http://localhost/nodes/48155bfb-c672-4eb4-890d-eb060985c453/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/48155bfb-c672-4eb4-890d-eb060985c453/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/48155bfb-c672-4eb4-890d-eb060985c453/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/48155bfb-c672-4eb4-890d-eb060985c453/volume", "rel": "self"}, {"href": "http://localhost/nodes/48155bfb-c672-4eb4-890d-eb060985c453/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/94ae5c80-f237-404f-92d6-c28786f73ca2 [{'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_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_driver_not_found ... ok ironic.tests.unit.api.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.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.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.controllers.v1.test_node.TestPatch.test_update_retired_with_reason ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_retired_with_reason ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_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_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_hardware_type_success_groups ... ok ironic.tests.unit.api.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_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.TestPatch.test_update_state ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_state ... 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.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_invalid_physnet_too_long ... ok ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached ironic.tests.unit.common.test_hash_ring.HashRingManagerWithGroupsTestCase.test_hash_ring_manager_uncached ... ok ironic.tests.unit.api.controllers.v1.test_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.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_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_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_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_ioerror ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_false_ioerror ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_ioerror ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_fail_verify_true_ioerror ... ok ironic.tests.unit.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-260f3d13-1593-4654-be73-a5f8cbd9de3c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "94ae5c80-f237-404f-92d6-c28786f73ca2", "created_at": "2024-01-06T13:33:18.555222+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/94ae5c80-f237-404f-92d6-c28786f73ca2", "rel": "self"}, {"href": "http://localhost/nodes/94ae5c80-f237-404f-92d6-c28786f73ca2", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/94ae5c80-f237-404f-92d6-c28786f73ca2/ports", "rel": "self"}, {"href": "http://localhost/nodes/94ae5c80-f237-404f-92d6-c28786f73ca2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/94ae5c80-f237-404f-92d6-c28786f73ca2/states", "rel": "self"}, {"href": "http://localhost/nodes/94ae5c80-f237-404f-92d6-c28786f73ca2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/94ae5c80-f237-404f-92d6-c28786f73ca2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/94ae5c80-f237-404f-92d6-c28786f73ca2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/94ae5c80-f237-404f-92d6-c28786f73ca2/volume", "rel": "self"}, {"href": "http://localhost/nodes/94ae5c80-f237-404f-92d6-c28786f73ca2/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/a4af5d33-a5e4-486e-adfe-8a6d9d892caa [{'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-fa2a575c-15dd-44da-bbbf-07d959e9cfd6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.61 {"uuid": "a4af5d33-a5e4-486e-adfe-8a6d9d892caa", "created_at": "2024-01-06T13:33:19.370640+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/a4af5d33-a5e4-486e-adfe-8a6d9d892caa", "rel": "self"}, {"href": "http://localhost/nodes/a4af5d33-a5e4-486e-adfe-8a6d9d892caa", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/a4af5d33-a5e4-486e-adfe-8a6d9d892caa/ports", "rel": "self"}, {"href": "http://localhost/nodes/a4af5d33-a5e4-486e-adfe-8a6d9d892caa/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/a4af5d33-a5e4-486e-adfe-8a6d9d892caa/states", "rel": "self"}, {"href": "http://localhost/nodes/a4af5d33-a5e4-486e-adfe-8a6d9d892caa/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/a4af5d33-a5e4-486e-adfe-8a6d9d892caa/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/a4af5d33-a5e4-486e-adfe-8a6d9d892caa/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/a4af5d33-a5e4-486e-adfe-8a6d9d892caa/volume", "rel": "self"}, {"href": "http://localhost/nodes/a4af5d33-a5e4-486e-adfe-8a6d9d892caa/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-d47cb0e9-d9b6-44df-b70d-a118631a2efc X-Openstack-Ironic-Api-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/1a6dcf1f-1617-4619-9418-bf6b4571b7a2 [{'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.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.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_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.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.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_port.TestPost.test_create_port_local_link_connection_missing_optional ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_local_link_connection_missing_optional ... ok ironic.tests.unit.common.test_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_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_node.TestPatch.test_update_traits ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_traits ... 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_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.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_path ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_path ... ok GOT:{'connectors': [{'uuid': 'c57fa4fe-77a5-4b91-baf1-3683aed20138', 'created_at': '2024-01-06T13:33:16.314347+00:00', 'updated_at': None, 'connector_id': 'test-connector_id-0', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/c57fa4fe-77a5-4b91-baf1-3683aed20138', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/c57fa4fe-77a5-4b91-baf1-3683aed20138', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'd37314e5-d948-4c11-971c-803a75fed8fe', 'created_at': '2024-01-06T13:33:16.327182+00:00', 'updated_at': None, 'connector_id': 'test-connector_id-1', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/d37314e5-d948-4c11-971c-803a75fed8fe', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/d37314e5-d948-4c11-971c-803a75fed8fe', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '420ac4bd-fa53-40fd-b106-3d758a1122f1', 'created_at': '2024-01-06T13:33:16.339673+00:00', 'updated_at': None, 'connector_id': 'test-connector_id-2', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/420ac4bd-fa53-40fd-b106-3d758a1122f1', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/420ac4bd-fa53-40fd-b106-3d758a1122f1', '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=420ac4bd-fa53-40fd-b106-3d758a1122f1'} GET: /v1/volume/connectors?detail=True {} GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T13:33:16.810153+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-60e4e87a-9c31-435a-980c-8137053bb5b7 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-08465880-db05-461e-b01a-79c85ed7adca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Unexpected arguments: detail\", \"debuginfo\": null}"} GET: /v1/volume/connectors?detail=True&node=test-node {} GOT:{'connectors': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T13:33:17.830586+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 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-81a2806a-c873-435c-b16a-a1ae4fef8152 X-Openstack-Ironic-Api-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': '69eea9a5-ae8f-4761-8679-7dcccd40477d', 'connector_id': 'test-value-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/69eea9a5-ae8f-4761-8679-7dcccd40477d', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/69eea9a5-ae8f-4761-8679-7dcccd40477d', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '1217f070-3197-4719-a812-80a4009bd9e3', 'connector_id': 'test-value-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/1217f070-3197-4719-a812-80a4009bd9e3', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1217f070-3197-4719-a812-80a4009bd9e3', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '5615b048-415f-4e6d-bfbf-1cdb31f1931c', 'connector_id': 'test-value-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/5615b048-415f-4e6d-bfbf-1cdb31f1931c', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/5615b048-415f-4e6d-bfbf-1cdb31f1931c', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} GET: /v1/volume/connectors?fields=uuid,extra {} GOT:{'connectors': [{'uuid': 'ec57836c-2bba-457b-baa4-faa28c865846', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/ec57836c-2bba-457b-baa4-faa28c865846', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ec57836c-2bba-457b-baa4-faa28c865846', 'rel': 'bookmark'}]}, {'uuid': '326e3ae6-e2da-46c1-94a5-8b2d2bb72550', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/326e3ae6-e2da-46c1-94a5-8b2d2bb72550', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/326e3ae6-e2da-46c1-94a5-8b2d2bb72550', 'rel': 'bookmark'}]}, {'uuid': 'ef7e7787-ff38-4c14-b8e2-3141eb260e27', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/connectors/ef7e7787-ff38-4c14-b8e2-3141eb260e27', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/ef7e7787-ff38-4c14-b8e2-3141eb260e27', '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/be449a04-b31b-48a6-89bd-ab7cc26107e5', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/be449a04-b31b-48a6-89bd-ab7cc26107e5', 'rel': 'bookmark'}]}, {'connector_id': 'test-connector_id-1', 'links': [{'href': 'http://localhost/v1/volume/connectors/98074da8-dd4b-4890-bd0a-3facad50675f', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/98074da8-dd4b-4890-bd0a-3facad50675f', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/connectors?sort_key=id&sort_dir=asc&fields=connector_id&limit=2&marker=98074da8-dd4b-4890-bd0a-3facad50675f'} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-07f959d4-7931-4119-8936-2579c3ad28db X-Openstack-Ironic-Api-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}"} 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.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_download_success_verify_true ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_get_one_custom_fields ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7a4bd5d4-3425-4743-9e9e-d22bd06b2ad1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected valid MAC address for address: invalid-format\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': 'invalid-format', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8a2a7345-8a13-4ea7-a318-3780cd61f947 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected UUID for node_uuid: invalid-format\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': '', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-018bab42-4186-4b45-a681-7def6e886d5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"A non-empty value is required when setting physical_network\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 1234, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ff0f3178-f12e-4c24-93f2-efd8de014e2b X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-cd38b671-16ca-4828-b034-517c7b5e0b00 X-Openstack-Ironic-Api-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 Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-a7585287-bab9-4e38-9ef4-84ce3717e1cb X-Openstack-Ironic-Api-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-06T13:33:20.662368+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-7a562f87-cee4-4385-ad65-3a2374be9c63 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for local_link_connection: {'switch_id': '0a:1b:2c:3d:4e:5f', 'switch_info': 'fooswitch'} is not valid under any of the given schemas. Possible root cause: 'port_id' is a required property\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet1/15'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-f32d500d-762f-499c-a631-f1e59a73f447 X-Openstack-Ironic-Api-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-06T13:33:21.567991+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-8b8cc88a-45bb-4c6a-8976-6b7283dcf543 X-Openstack-Ironic-Api-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}"} 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.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.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.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces ironic.tests.unit.api.controllers.v1.test_node.TestPatch.test_update_with_reset_interfaces ... ok ironic.tests.unit.api.controllers.v1.test_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.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_ansi_c ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_allowed ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_allowed ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_links ... ok ironic.tests.unit.api.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.common.test_image_service.HttpImageServiceTestCase.test_show_cache_disabled ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_cache_disabled ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_no_content_length ... ok ironic.tests.unit.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_image_service.HttpImageServiceTestCase.test_show_rfc_822 ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_show_rfc_822 ... 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.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.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_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_custom_timeout ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_error_with_secret_parameter ... ok ironic.tests.unit.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_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.common.test_image_service.HttpImageServiceTestCase.test_validate_href_http_scheme ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_http_scheme ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_cleanwait ... 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_volume_connector.TestListVolumeConnectors.test_sort_key ironic.tests.unit.api.controllers.v1.test_volume_connector.TestListVolumeConnectors.test_sort_key ... ok ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_redirected ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_path_redirected ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_nopxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_abort_invalid_state ... 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.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.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_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.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_false ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dff73c0f-80cd-4f26-9a2e-cfc6e8713e75 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "1a6dcf1f-1617-4619-9418-bf6b4571b7a2", "created_at": "2024-01-06T13:33:20.525068+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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/1a6dcf1f-1617-4619-9418-bf6b4571b7a2", "rel": "self"}, {"href": "http://localhost/nodes/1a6dcf1f-1617-4619-9418-bf6b4571b7a2", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1a6dcf1f-1617-4619-9418-bf6b4571b7a2/ports", "rel": "self"}, {"href": "http://localhost/nodes/1a6dcf1f-1617-4619-9418-bf6b4571b7a2/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1a6dcf1f-1617-4619-9418-bf6b4571b7a2/states", "rel": "self"}, {"href": "http://localhost/nodes/1a6dcf1f-1617-4619-9418-bf6b4571b7a2/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1a6dcf1f-1617-4619-9418-bf6b4571b7a2/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1a6dcf1f-1617-4619-9418-bf6b4571b7a2/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1a6dcf1f-1617-4619-9418-bf6b4571b7a2/volume", "rel": "self"}, {"href": "http://localhost/nodes/1a6dcf1f-1617-4619-9418-bf6b4571b7a2/volume", "rel": "bookmark"}]} PATCH: /v1/nodes/c9ada4b5-dd06-4ebb-8415-4a9fd18ab8df [{'path': '/storage_interface', 'value': 'cinder', 'op': 'add'}] GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-98579e96-f376-4375-8686-8f5101da8dce X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.32 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PATCH: /v1/nodes/4b864fbe-fb45-4e4f-a013-cb29381ec507 [{'path': '/traits', 'value': ['CUSTOM_1'], 'op': 'add'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-71540193-f3b0-47e0-914c-8499c707e72b X-Openstack-Ironic-Api-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-909a267b-a733-46e4-9c40-fd15fe67c700 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-06T13:33:22.039475+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"}]} 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-7d3dbd4a-eac6-4c65-8b25-8288d00c5cce 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 Content-Type: application/json Openstack-Request-Id: req-b3fa4297-9a0f-4f6f-955f-f944e5ca2d3f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.13 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The requested action \\\"abort\\\" can not be performed on node \\\"1be26c0b-03f2-4d2e-ae87-c02d7f33c123\\\" while it is in state \\\"cleaning\\\".\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'adopt'} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_active_fails ... ok ironic.tests.unit.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 GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T13:33:21.970019+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/3537f8e7-710f-493f-ab24-66385e9259e9 {} GOT:{'uuid': '3537f8e7-710f-493f-ab24-66385e9259e9', 'created_at': '2024-01-06T13:33:22.986630+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/3537f8e7-710f-493f-ab24-66385e9259e9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/3537f8e7-710f-493f-ab24-66385e9259e9', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/volume/connectors/3537f8e7-710f-493f-ab24-66385e9259e9 {} GOT:{'uuid': '3537f8e7-710f-493f-ab24-66385e9259e9', 'created_at': '2024-01-06T13:33:22.986630+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/3537f8e7-710f-493f-ab24-66385e9259e9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/3537f8e7-710f-493f-ab24-66385e9259e9', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /volume/connectors/3537f8e7-710f-493f-ab24-66385e9259e9 {} GOT:{'uuid': '3537f8e7-710f-493f-ab24-66385e9259e9', 'created_at': '2024-01-06T13:33:22.986630+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/3537f8e7-710f-493f-ab24-66385e9259e9', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/3537f8e7-710f-493f-ab24-66385e9259e9', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/volume/connectors {} GOT:{'connectors': [{'uuid': '248109b5-f158-45f8-ab31-670393d8ff49', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/248109b5-f158-45f8-ab31-670393d8ff49', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/248109b5-f158-45f8-ab31-670393d8ff49', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '46bc104b-6056-44fa-a65f-78b367135ddd', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/46bc104b-6056-44fa-a65f-78b367135ddd', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/46bc104b-6056-44fa-a65f-78b367135ddd', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '63f25357-22e6-4eb3-80db-03ba1cdd898d', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/63f25357-22e6-4eb3-80db-03ba1cdd898d', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/63f25357-22e6-4eb3-80db-03ba1cdd898d', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '731b2a72-dbb1-4ba8-8ac9-f03f2082d363', 'connector_id': 'test-connector_id-3', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/731b2a72-dbb1-4ba8-8ac9-f03f2082d363', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/731b2a72-dbb1-4ba8-8ac9-f03f2082d363', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '2e534586-c5cc-44b3-9dce-fbcf3444bb3d', 'connector_id': 'test-connector_id-4', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/2e534586-c5cc-44b3-9dce-fbcf3444bb3d', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/2e534586-c5cc-44b3-9dce-fbcf3444bb3d', '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': '5e782931-c7e0-4720-900f-fff3d83fc0a6', 'connector_id': 'test-connector_id-2', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/5e782931-c7e0-4720-900f-fff3d83fc0a6', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/5e782931-c7e0-4720-900f-fff3d83fc0a6', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '61f390bc-ed52-4712-8140-e3158106828d', 'connector_id': 'test-connector_id-1', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/61f390bc-ed52-4712-8140-e3158106828d', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/61f390bc-ed52-4712-8140-e3158106828d', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '87a0eb6f-667a-4f5b-8d0b-692358c6573e', 'connector_id': 'test-connector_id-0', 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/87a0eb6f-667a-4f5b-8d0b-692358c6573e', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/87a0eb6f-667a-4f5b-8d0b-692358c6573e', '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-d8f47d68-5cfd-4561-8e21-11d2f14374e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/volume/connectors?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-00030663-bb16-4e08-a71e-4bd44b840240 X-Openstack-Ironic-Api-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'}] 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.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_os_error ironic.tests.unit.common.test_image_service.HttpImageServiceTestCase.test_validate_href_verify_os_error ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_adopt_from_adoptfail ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_node_id ... 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 Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-cbbc7e4a-15f1-4ffb-9e53-65be6f586a17 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-06T13:33:22.437991+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-5fb0ee8d-e730-40ce-93e7-be2587257661 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for port: 'address' is a required property\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6c59ae96-fabd-4af1-a2d0-2f6252571c0b X-Openstack-Ironic-Api-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-7c3279aa-8a0a-4ab2-9ac3-96c0812a7486 X-Openstack-Ironic-Api-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-6ff10101-da23-461d-9742-258289a52bf0 X-Openstack-Ironic-Api-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-06T13:33:24.091189+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-084e4db5-7d6c-4e34-87bd-10f448b6b5e8 X-Openstack-Ironic-Api-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-06T13:33:24.490361+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-f230a733-1c56-4e62-8b2d-4d773cad49bb X-Openstack-Ironic-Api-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-06T13:33:24.944699+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.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.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.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_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.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.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.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_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_novif_pxe_portgroup_standalone_ports ... ok ironic.tests.unit.api.controllers.v1.test_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.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_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_node.TestPut.test_bad_requests_in_adopting_state ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_bad_requests_in_adopting_state ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup ... 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.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_add_root_non_existent ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_different_nodes ... ok ironic.tests.unit.api.controllers.v1.test_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.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_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_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_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.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_port.TestPost.test_create_port_portgroup_uuid_not_found ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_older_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_older_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_multi ... 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_node.TestPut.test_boot_mode_bios_valid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_bios_valid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_portgroup_uuid_not_found_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_node_id ... ok ironic.tests.unit.common.test_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.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty ironic.tests.unit.common.test_network.GetPortsByPortgroupIdTestCase.test_ports_by_portgroup_id_empty ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_non_existent_property_fail ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-5ac6c5b9-adf9-405e-b70e-619f22475769 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-a2cc4b2d-ad99-4c54-93f5-6d36a6c2e897 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-bc7182ae-021f-4b9d-a905-9a87af47114f 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-1f780120-3e25-4f31-8c3b-3eecf4bfe789 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 Content-Type: application/json Openstack-Request-Id: req-0775a00d-655d-440f-8aa2-00219f482fce X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-4e242e9d-0076-4fd9-bc2f-0d3664d01aa9 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-e3a31f42-f95e-4853-ab1d-579f3cc1a5b2 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8585ae63-c7cf-4119-9f83-be3195e5d742 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a2f4b13f-6457-443b-bad5-fb43defed36e X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-7952da8e-5a1c-4b01-b1c7-4116f5f2e278 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d347c171-577b-467e-b141-e8b75817acfb X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ac48116d-c76f-4a3d-89db-7f08142dc59e X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-59875c15-1386-4582-a9aa-29cdec95a586 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0d467a94-a6af-4387-8ee1-4b2a1b9b3efe 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-77b23489-d662-4fb9-917d-e7babf633622 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'unsupported-efi'} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_invalid_request ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_invalid_request ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-919c45f1-043a-48e5-85c1-15b470562f86 X-Openstack-Ironic-Api-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-06T13:33:25.366747+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-a140f275-8261-4ace-a985-9082d8bea8b3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that portgroup as the port's 'pxe_enabled' field was set to True.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-bf6d779b-e596-479c-b01b-090a06892cbc X-Openstack-Ironic-Api-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-06T13:33:26.406671+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 Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-3f722a44-694c-452e-86ea-8040f514ffd8 X-Openstack-Ironic-Api-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-06T13:33:26.832781+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': 'fd5b38ef-41dd-45aa-937d-e7daff6a8c8a', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e70de2e9-28ed-4cb3-82ba-257e11597534 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node fd5b38ef-41dd-45aa-937d-e7daff6a8c8a 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-87181f24-2879-4327-ab41-cb1cba02f316 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-4ee72781-c996-4ef2-92af-507baf6f8f6a X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-7942b18d-94fd-4b33-8b19-d4f08ba8ca2f X-Openstack-Ironic-Api-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.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_older_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_boot_mode_uefi_older_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_uuid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_remove_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_port.TestPost.test_create_port_valid_extra ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_valid_extra ... ok ironic.tests.unit.api.controllers.v1.test_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.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_during_provisioning ... ok ironic.tests.unit.api.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-872b8b1b-3217-48ce-94d9-946e46d354b4 X-Openstack-Ironic-Api-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-06T13:33:25.055339+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-0794c982-d077-4452-a016-e657df9ee5ca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: connector_id, extra, node_uuid, type\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9df84bb1-15be-475a-b88f-846ecc099e44 X-Openstack-Ironic-Api-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-06T13:33:25.806580+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-eb24ad16-62f7-4926-be99-d847f3cbba6f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/connector_id', 'value': 'test-connector-id-123', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f019b09c-881a-4a02-bfda-64f011c4fa21 X-Openstack-Ironic-Api-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-06T13:33:26.683273+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-93824a90-4b76-4449-b2e0-3b8c2c3d6a65 X-Openstack-Ironic-Api-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'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1298b6a8-d44e-4f5f-83b8-67ee19f373c7 X-Openstack-Ironic-Api-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-c019e6d9-699b-4873-8f24-31c035cb81cc X-Openstack-Ironic-Api-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-06T13:33:27.878707+00:00", "updated_at": "2024-01-06T13:33:27.910296+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-57cbc77f-8a58-4cac-8047-158265b44a59 X-Openstack-Ironic-Api-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-06T13:33:27.878707+00:00", "updated_at": "2024-01-06T13:33:27.910296+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-1b72df5e-d62d-44e5-8383-73140f8b23fe X-Openstack-Ironic-Api-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-72c960b1-4682-4987-8eb8-a9a25a566d19 X-Openstack-Ironic-Api-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-6b7dbfee-dcc2-44bd-81ed-73e00c16f7d8 X-Openstack-Ironic-Api-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'}] 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.TestPut.test_clean ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean ... 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.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_invalid_power_state ... ok ironic.tests.unit.api.controllers.v1.test_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_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_no_ports_no_portgroups ... ok ironic.tests.unit.api.controllers.v1.test_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_volume_connector.TestPatch.test_replace_multi ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_multi ... ok ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_one_port_int_info ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_vif_pxe_noportgroup ... ok ironic.tests.unit.api.controllers.v1.test_node.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_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.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.TestPut.test_clean_disable_ramdisk_old_api ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_clean_disable_ramdisk_old_api ... 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-3fac979a-fce7-43ca-a136-8f6353c2dd7c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for local_link_connection: {'switch_id': 'value1', 'port_id': 'Ethernet1/15', 'switch_foo': 'value3'} is not valid under any of the given schemas. Possible root cause: Additional properties are not allowed ('switch_foo' was unexpected)\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-5125e34c-81f5-40b9-b53d-917acb1197ab X-Openstack-Ironic-Api-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-06T13:33:29.373284+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-06T13:33:29.373284+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'internal_info': {}, 'is_smartnic': False, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'physical_network': None, 'pxe_enabled': True, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': False, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-cb68489f-6881-4af1-8009-41aa152758b5 X-Openstack-Ironic-Api-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-06T13:33:29.900036+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-0faabd93-e8c6-4474-ae1d-952b17c896ed X-Openstack-Ironic-Api-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-06T13:33:30.392499+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-eaa4b040-8b09-442a-b4f1-a595eff0f824 X-Openstack-Ironic-Api-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-06T13:33:30.887797+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.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.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info ironic.tests.unit.common.test_network.TestNetwork.test_get_node_vif_ids_two_portgroups_int_info ... ok ironic.tests.unit.api.controllers.v1.test_volume_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_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_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_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.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_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_port.TestPost.test_create_port_with_hyphens_delimiter ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_hyphens_delimiter ... ok ironic.tests.unit.api.controllers.v1.test_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_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.common.test_network.TestNetwork.test_remove_vifs_from_node ironic.tests.unit.common.test_network.TestNetwork.test_remove_vifs_from_node ... ok ironic.tests.unit.api.controllers.v1.test_port.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_volume_connector.TestPatch.test_replace_singular ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_replace_singular ... 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.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.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.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic ... ok ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_missing ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_byid ... ok ironic.tests.unit.common.test_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.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.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid ironic.tests.unit.common.test_neutron.TestGetNetworkByUUIDOrName.test__get_network_by_uuid_or_name_uuid ... ok ironic.tests.unit.api.controllers.v1.test_volume_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.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.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_default_value ... ok ironic.tests.unit.api.controllers.v1.test_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_volume_connector.TestPatch.test_update_not_found ironic.tests.unit.api.controllers.v1.test_volume_connector.TestPatch.test_update_not_found ... ok ironic.tests.unit.common.test_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.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_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.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.api.controllers.v1.test_volume_target.TestPatch.test_add_multi ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_multi ... ok ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment ironic.tests.unit.common.test_neutron.TestGetPhysnetsByPortUUID.test_get_physnets_by_port_uuid_no_segment ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_missing_port_id ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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_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 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-0c0d6303-5e3f-4042-b98e-863982f5ecdc X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c29ecf08-7ec2-426c-a008-23e0060d2aab X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1064c0ec-33e0-48d5-a996-e7fff33f2089 X-Openstack-Ironic-Api-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-06T13:33:30.583744+00:00", "updated_at": "2024-01-06T13:33:30.613189+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-34411ca5-8b4f-4b17-ab2e-331527fb5dab X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-22287d5d-901c-46a0-9531-7ebcbad52d44 X-Openstack-Ironic-Api-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-06T13:33:31.457643+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-a6d39a32-6194-4ab4-8b54-2d4a9c9427bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Expected a UUID for node_uuid, but received 123.\", \"debuginfo\": null}"} PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '12506333-a81c-4d59-9987-889ed5f8687b', 'op': 'replace'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9b7bbd75-6d35-4f55-943b-511f0e3bd0df X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-da6baf9d-a341-465a-af66-7ed736280702 X-Openstack-Ironic-Api-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-06T13:33:32.506857+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-344ee262-e4ee-4128-8ed5-9c8bedc79c0f X-Openstack-Ironic-Api-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-06T13:33:33.001952+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/4f20bd3d-588e-4b6c-ae24-7962aba98987 [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-49015205-b9c6-4c24-a817-5b61a1862b81 X-Openstack-Ironic-Api-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 4f20bd3d-588e-4b6c-ae24-7962aba98987 could not be found.\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/extra/foo1', 'value': 'bar1', 'op': 'add'}, {'path': '/extra/foo2', 'value': 'bar2', 'op': 'add'}, {'path': '/extra/foo3', 'value': 'bar3', 'op': 'add'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-64956565-7a9a-4ab3-ac64-77276b29faf4 X-Openstack-Ironic-Api-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-06T13:33:34.054391+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"} ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_id ... ok ironic.tests.unit.api.controllers.v1.test_node.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.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 GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-4780f297-c249-49a3-82d0-bf17081f1e6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port group 6eb02b44-18a3-4659-8c0b-8d2802581ae4 doesn't support standalone ports. This port cannot be created as a member of that portgroup as the port's 'pxe_enabled' field was set to True.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-7280fd4e-ee78-43f0-ad45-bcc81fb085a2 X-Openstack-Ironic-Api-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-06T13:33:31.823531+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-5359919c-51b0-4e2e-9c62-912356f77690 X-Openstack-Ironic-Api-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-0b6e3b62-6266-4787-af27-cb0ff9fcd88e X-Openstack-Ironic-Api-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-910d3d8e-dc66-4504-8391-4dcde9853629 X-Openstack-Ironic-Api-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-06T13:33:32.963205+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-821625b7-60a7-47b9-ac32-1b45b3df42cc X-Openstack-Ironic-Api-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-06T13:33:33.480082+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-96177b97-ad3b-479c-beab-a43db9b8fb3e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Smart NIC port must have port_id and hostname in local_link_connection\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_info': 'switch', 'switch_id': 'aa:bb:cc:dd:ee:ff', 'hostname': 'host'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': True, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-8fd2b59f-1a32-4030-96d1-7033e52effc1 X-Openstack-Ironic-Api-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.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_is_smartnic_old_api_version ... ok ironic.tests.unit.common.test_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_volume_target.TestPatch.test_add_node_uuid ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.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_node.TestPut.test_manage_from_adoptfail ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_adoptfail ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_node_uuid_invalid_type ... ok ironic.tests.unit.api.controllers.v1.test_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_volume_target.TestPatch.test_add_root ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_add_root ... ok GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1404aa56-8597-4ea0-8e8d-1db174122eb3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid boot mode unsupported-efi requested for node. Allowed boot modes are: bios, uefi\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3136e80f-ec3a-4fc0-9da3-f930f6938791 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-58e77b37-b0cc-44df-b146-82f70d4db3a5 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-1612f1a2-0f16-4a2d-9c6e-16396558196b 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-d9d8a410-654a-4dc0-acc8-09cc15f8e78f 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-28678b00-62f8-4c27-b624-7d3b065533e1 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 Content-Type: application/json Openstack-Request-Id: req-a2cf7329-5c89-4961-bb80-be94a17df75f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.69 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"disable_ramdisk is not acceptable in this API version\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'clean'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0d734b15-58da-49fe-b916-bb80d8883743 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-ba969b6b-b78a-432e-a494-c8a9989ec20d 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 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-02d9447c-d771-4e75-af96-352d8c18409b 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 Content-Type: application/json Openstack-Request-Id: req-47b94215-61e9-4bd4-9b30-bf5df7455150 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-404dbac4-0cd5-4615-87dc-1e0b26ce519a 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-49f80031-01f0-4c39-80c6-681fe811f13c 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 Content-Type: application/json Openstack-Request-Id: req-da267fd2-2c87-4d92-91e8-f53410600327 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'inspect'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9468541d-a0ce-48e4-a220-a17e49383ab8 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 Content-Type: application/json Openstack-Request-Id: req-65f16007-ffff-4ee8-a1ed-fb19757bd1e1 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-9e453238-c460-473c-bb91-9ec6e2237d53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.17 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'manage'} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_manage_from_available ... ok ironic.tests.unit.api.controllers.v1.test_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_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_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.TestPut.test_power_invalid_state_request ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_invalid_state_request ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_remove_mandatory_field ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_by_name_unsupported ... ok ironic.tests.unit.api.controllers.v1.test_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_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.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_invalid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_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_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_invalid_timeout_no_ver ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_physical_network_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_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_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.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_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.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_invalid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_create_port_with_pxe_enabled_old_api_version ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_no_ver ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_power_on_no_timeout_valid_soft_ver ... ok 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-06cc8736-5fd3-49ed-aeb5-89f4953b59e7 X-Openstack-Ironic-Api-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-a44d1737-7a7d-4b9b-84e6-13fe99e44111 X-Openstack-Ironic-Api-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-06T13:33:34.955834+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-da575ac7-3585-472c-a790-7895909c421b X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-fab6e90b-70b5-49ba-9cf0-5cd313be70b8 X-Openstack-Ironic-Api-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-06T13:33:35.719227+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-5c26338e-1ef9-4ee5-983d-b60b786733fe X-Openstack-Ironic-Api-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'}] GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a4aec90c-7517-4b3d-88e9-598eb61fda04 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-02f172ba-157f-404e-ad62-2eb199d0d467 X-Openstack-Ironic-Api-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-06T13:33:36.884081+00:00", "updated_at": "2024-01-06T13:33:36.922264+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-28dc0642-7a6e-4104-8df1-eef462ca0aeb X-Openstack-Ironic-Api-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-06T13:33:36.884081+00:00", "updated_at": "2024-01-06T13:33:36.922264+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-6db5f2e2-22df-4b99-8880-a59eada028f3 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d7138a44-306d-4cdd-ad5b-e8aabc8dfa56 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0a272bed-8659-4feb-8753-b93e6c09d9bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /uuid. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-e670534a-a57b-40ff-9d37-9cc2521865df X-Openstack-Ironic-Api-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'}] 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 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-0faa6e46-e616-4deb-a767-b3cd23a597ca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet1/15'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-afeca23a-0e56-4699-915d-95ebcc549328 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'network_type': 'unmanaged'}, 'pxe_enabled': True, 'physical_network': None, 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-1ffc27f6-2b35-441f-890d-0ba4c37f3382 X-Openstack-Ironic-Api-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-06T13:33:35.647664+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-f20ff284-0cf5-48d1-9463-3bb49d31c5f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.63 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} POST: /v1/ports {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'extra': {}, 'local_link_connection': {'switch_id': '0a:1b:2c:3d:4e:5f', 'port_id': 'Ethernet3/1', 'switch_info': 'switch1'}, 'pxe_enabled': True, 'physical_network': 'physnet1', 'is_smartnic': False, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-0d53e382-a2d5-4af2-a815-9f05453add85 X-Openstack-Ironic-Api-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-06T13:33:36.466463+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-3bece8af-86de-4523-83e9-ce208685918b 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 Content-Type: application/json Openstack-Request-Id: req-43d4ab68-f8b4-4345-a8f6-941ef7afc8fd X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-58e265c8-d961-48a8-bd42-3972518bf4ab 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'} 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.common.test_neutron.TestNeutronClient.test_get_neutron_client_auth_from_config ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_auth_from_config ... ok ironic.tests.unit.api.controllers.v1.test_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_port.TestPost.test_portgroups_subresource_post ironic.tests.unit.api.controllers.v1.test_port.TestPost.test_portgroups_subresource_post ... ok ironic.tests.unit.api.controllers.v1.test_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_root.TestV1Routing.test_max_version ironic.tests.unit.api.controllers.v1.test_root.TestV1Routing.test_max_version ... ok ironic.tests.unit.api.controllers.v1.test_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.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_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_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_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.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_utils.TestCheckListPolicy.test_check_list_policy ironic.tests.unit.api.controllers.v1.test_utils.TestCheckListPolicy.test_check_list_policy ... ok ironic.tests.unit.api.controllers.v1.test_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_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_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.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_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_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_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_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_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_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_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_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_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_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.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_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.TestPatch.test_update_byid_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_target.TestPatch.test_update_byid_invalid_api_version ... ok GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-cc2f55be-2d55-46cf-a2f6-b8583efeabfd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.4 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power off'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-59d09463-ac1c-429c-81ea-d08dbd9c97e6 X-Openstack-Ironic-Api-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'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bcdb503a-6b0b-48f0-89dc-a3ded4739ef1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-f5ad940e-991b-4891-afe8-c5eab6fbe586 X-Openstack-Ironic-Api-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-3d8272a1-c090-482b-8c82-7090cf01c79f 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-54e80798-4074-4e24-8af2-14c4c7fa897c X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-34706fa3-1bc1-46df-892e-109c3bcb2697 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} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0280ee0d-2890-4c0f-b9f0-66740a57035f X-Openstack-Ironic-Api-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} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6e74ccfa-0420-42fe-8037-9ef7a2fe95c3 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-710b7608-51db-44ba-a713-195554f858ee 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-8b0477c1-3324-483d-815c-5695c71a7ea5 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-f0769e36-9d48-40fd-9e5a-9ce57bad36f4 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-f79e5688-80cf-42b8-9466-e196ae72ef3b 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 Content-Type: application/json Openstack-Request-Id: req-7ea2459e-b381-49cd-b185-a0e2a3f8fad3 X-Openstack-Ironic-Api-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-36bb1db8-4ea1-44a6-a97d-5965578484cc 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-5d13da88-9adf-4a17-a7a1-ee6c78ad6a78 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': 0} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-712ea935-6e48-4280-8914-d4a58fbb246f X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1634f9c8-9b6d-40a6-8351-64fb7f98f78a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.27 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"timeout has to be positive integer\", \"debuginfo\": null}"} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_invalid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_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_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_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.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.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_power_state_soft_power_off_no_timeout_valid_soft_ver ... ok ironic.tests.unit.api.controllers.v1.test_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_utils.TestLocalLinkValidation.test_local_link_connection_type_empty_value ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_empty_value ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_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 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-28fdce30-7017-454d-9934-2d6f89150562 X-Openstack-Ironic-Api-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'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-89657e69-a56e-4cfb-9a8f-22857b2f4c0b X-Openstack-Ironic-Api-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-06T13:33:39.367511+00:00", "updated_at": "2024-01-06T13:33:39.405480+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-6c65b911-1777-4426-841c-a78281191758 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Cannot patch /node_id. Only the following can be updated: boot_index, extra, node_uuid, properties, volume_id, volume_type\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/node_uuid', 'value': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d000028a-83c4-4905-a3c2-f1159114f27b X-Openstack-Ironic-Api-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-06T13:33:40.102550+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-596408ab-35c7-4e20-a8f7-994e1e1b43e7 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c1ffe534-f858-4b1a-b480-57372a42dcea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 12506333-a81c-4d59-9987-889ed5f8687b could not be found.\", \"debuginfo\": null}"} PATCH: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'path': '/boot_index', 'value': 100, 'op': 'replace'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-87292e9b-936f-4085-8cc7-b40aee3d1ca1 X-Openstack-Ironic-Api-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-06T13:33:41.143218+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-66b5aa1b-6723-4860-89bc-dbe494896fc7 X-Openstack-Ironic-Api-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-06T13:33:41.514883+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/ba8f1a1b-3a6f-4373-bb79-e86828c768de [{'path': '/extra/foo', 'value': 'bar', 'op': 'add'}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-49fba8a5-12f2-439b-8ff7-033ae152cdb8 X-Openstack-Ironic-Api-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 ba8f1a1b-3a6f-4373-bb79-e86828c768de could not be found.\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-de6d60ce-fa91-4c64-a8a8-f99e917d89dd X-Openstack-Ironic-Api-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 {} 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_utils.TestLocalLinkValidation.test_local_link_connection_type_invalid_key ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_invalid_key ... ok ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_noauth ... ok ironic.tests.unit.api.controllers.v1.test_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_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.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.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.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_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_utils.TestLocalLinkValidation.test_local_link_connection_type_not_mac_or_datapath_id ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_not_mac_or_datapath_id ... ok ironic.tests.unit.api.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_volume_target.TestPost.test_create_volume_target_generate_uuid ironic.tests.unit.api.controllers.v1.test_volume_target.TestPost.test_create_volume_target_generate_uuid ... ok ironic.tests.unit.api.controllers.v1.test_node.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_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_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_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_port_id_missing ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_port_id_missing ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_progress ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_with_optional ironic.tests.unit.api.controllers.v1.test_utils.TestLocalLinkValidation.test_local_link_connection_type_smart_nic_keys_with_optional ... ok ironic.tests.unit.api.controllers.v1.test_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_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_node.TestPut.test_provision_already_in_state ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_already_in_state ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name ironic.tests.unit.api.controllers.v1.test_utils.TestPortgroupIdent.test_get_rpc_portgroup_name ... ok ironic.tests.unit.api.controllers.v1.test_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_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.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_versions.TestVersionConstants.test_duplicates ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_duplicates ... 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_versions.TestVersionConstants.test_max_ver_str ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_max_ver_str ... ok ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_min_ver_str ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_by_name_unsupported ... ok ironic.tests.unit.api.controllers.v1.test_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_versions.TestVersionConstants.test_name_value_match ironic.tests.unit.api.controllers.v1.test_versions.TestVersionConstants.test_name_value_match ... ok ironic.tests.unit.api.controllers.v1.test_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_deploy ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_deploy ... 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_node.TestPut.test_provision_invalid_state_request ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_invalid_state_request ... ok 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-e239a1d8-7dbe-4630-92ef-ff5b49194983 X-Openstack-Ironic-Api-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-06T13:33:42.962549+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-06T13:33:42.962549+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-43d62ec5-4e05-420d-84b4-4bc8e56c05bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/volume/targets {'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/630000af-4c2a-4718-bd44-d142e01b3ea6 Openstack-Request-Id: req-d0708e94-ce5a-430b-9381-287468ebd408 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "630000af-4c2a-4718-bd44-d142e01b3ea6", "created_at": "2024-01-06T13:33:43.825170+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/630000af-4c2a-4718-bd44-d142e01b3ea6", "rel": "self"}, {"href": "http://localhost/volume/targets/630000af-4c2a-4718-bd44-d142e01b3ea6", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET: /v1/volume/targets/630000af-4c2a-4718-bd44-d142e01b3ea6 {} GOT:{'uuid': '630000af-4c2a-4718-bd44-d142e01b3ea6', 'created_at': '2024-01-06T13:33:43.825170+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/630000af-4c2a-4718-bd44-d142e01b3ea6', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/630000af-4c2a-4718-bd44-d142e01b3ea6', '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} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ce5e6dce-a01a-470a-b557-9c832af15acb X-Openstack-Ironic-Api-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-b66302b2-0a56-43a0-a005-963b2c5565ea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'node_uuid' is a required property\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-59d3748f-8921-4f55-8db6-1f8ea56d33df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'volume_type' is a required property\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e25bc3f6-5dc2-44e8-b041-2539653728e6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for target: 'boot_index' is a required property\", \"debuginfo\": null}"} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-caa8391b-0a90-488e-8034-ba222130c6f1 X-Openstack-Ironic-Api-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}"} 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.TestListVolumeTargets.test_collection_links_custom_fields ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.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 GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-0de15b6a-2482-4b84-ae2f-f0983f088f26 X-Openstack-Ironic-Api-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-06T13:33:39.169181+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-830a6706-77fb-409b-80bd-d8b6ca03b633 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/ {} GOT:{'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'media_types': {'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}, 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}, 'portgroups': [{'href': 'http://localhost/v1/portgroups/', 'rel': 'self'}, {'href': 'http://localhost/portgroups/', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/volume/', 'rel': 'self'}, {'href': 'http://localhost/volume/', 'rel': 'bookmark'}], 'lookup': [{'href': 'http://localhost/v1/lookup/', 'rel': 'self'}, {'href': 'http://localhost/lookup/', 'rel': 'bookmark'}], 'heartbeat': [{'href': 'http://localhost/v1/heartbeat/', 'rel': 'self'}, {'href': 'http://localhost/heartbeat/', 'rel': 'bookmark'}], 'conductors': [{'href': 'http://localhost/v1/conductors/', 'rel': 'self'}, {'href': 'http://localhost/conductors/', 'rel': 'bookmark'}], 'allocations': [{'href': 'http://localhost/v1/allocations/', 'rel': 'self'}, {'href': 'http://localhost/allocations/', 'rel': 'bookmark'}], 'events': [{'href': 'http://localhost/v1/events/', 'rel': 'self'}, {'href': 'http://localhost/events/', 'rel': 'bookmark'}], 'deploy_templates': [{'href': 'http://localhost/v1/deploy_templates/', 'rel': 'self'}, {'href': 'http://localhost/deploy_templates/', 'rel': 'bookmark'}]} GET: /v1/ {} GOT:{'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'media_types': {'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}, 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}} GET: /v1/ {} GOT:{'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'media_types': {'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}, 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}} GET: /v1/volume/targets/?limit=3 {} GOT:{'targets': [{'uuid': 'ce145bae-ec1b-4d6f-8342-35b897c87a39', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/ce145bae-ec1b-4d6f-8342-35b897c87a39', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ce145bae-ec1b-4d6f-8342-35b897c87a39', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '6065ef0b-a4e1-4f36-8958-76baa5608674', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/6065ef0b-a4e1-4f36-8958-76baa5608674', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6065ef0b-a4e1-4f36-8958-76baa5608674', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '618cacab-be17-48c1-a179-8d2772249ded', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/618cacab-be17-48c1-a179-8d2772249ded', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/618cacab-be17-48c1-a179-8d2772249ded', '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=618cacab-be17-48c1-a179-8d2772249ded'} GET: /v1/volume/targets?fields=uuid,extra {} GOT:{'targets': [{'uuid': '6f07e41d-49ec-492e-9d2f-04c47337179c', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/6f07e41d-49ec-492e-9d2f-04c47337179c', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6f07e41d-49ec-492e-9d2f-04c47337179c', 'rel': 'bookmark'}]}, {'uuid': '20d64614-693c-4b81-86a9-0885219938b4', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/20d64614-693c-4b81-86a9-0885219938b4', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/20d64614-693c-4b81-86a9-0885219938b4', 'rel': 'bookmark'}]}, {'uuid': '022c3b77-ba45-4d49-ab17-9d942598864b', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/022c3b77-ba45-4d49-ab17-9d942598864b', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/022c3b77-ba45-4d49-ab17-9d942598864b', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=uuid,extra&limit=3&marker=022c3b77-ba45-4d49-ab17-9d942598864b'} GET: /v1/volume/targets {} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_default_limit ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_collection_links_detail ... ok ironic.tests.unit.api.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_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.TestPut.test_provision_locked_with_correct_state ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_locked_with_correct_state ... ok ironic.tests.unit.api.controllers.v1.test_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_node.TestPut.test_provision_node_in_maintenance_fail ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_node_in_maintenance_fail ... ok ironic.tests.unit.api.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_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.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.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_volume_target.TestListVolumeTargets.test_detail_false ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_false ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_invalid_api_version ... ok ironic.tests.unit.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 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-08288bef-fc14-4a05-bd7f-2309767fb8cf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.26 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'soft power off'} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-f8176001-c5be-410b-b6af-57aa2387ea38 X-Openstack-Ironic-Api-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-94b98120-ee4a-468f-881c-49cce45e66f2 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 Content-Type: application/json Openstack-Request-Id: req-7976c4a2-c6d6-4c3b-a76a-62fe415986e6 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 Content-Type: application/json Openstack-Request-Id: req-b80df1a5-431f-4376-8141-2ec0fd9446aa X-Openstack-Ironic-Api-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-cd0f340f-8a08-4861-86e4-f8ad1f40aff5 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-fbd2ccaf-aa50-4b6a-9f4d-6163692cfab7 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-644116b1-3431-4687-91dd-5f839001a7db X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c1339521-1448-49dd-b1e8-f46d70d6efc5 X-Openstack-Ironic-Api-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-276639be-512c-4419-9f66-db8e6d2ad618 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-2e98218b-99e3-4955-9a6e-3ae3088bc17f X-Openstack-Ironic-Api-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-c1813958-f792-4d98-98d4-143ad0565510 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-539ce5fe-825a-480b-993e-c81ec682f8da X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-022f30f9-f09a-408a-9857-b8a8717bf41c X-Openstack-Ironic-Api-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'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3e1c891e-4f87-480f-9896-40eed80828c6 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-67c8961b-043a-42ac-b376-e81acb09f14a 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-00fa0a82-47b1-4ca6-873f-41b35d093ea2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rescue', 'rescue_password': 'password'} ironic.tests.unit.api.controllers.v1.test_node.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_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_detail_sepecified_by_path ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_empty ... ok ironic.tests.unit.api.controllers.v1.test_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.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.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.TestPut.test_provision_rescue_no_password ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_rescue_no_password ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unexpected_rescue_password ... ok GOT:{'targets': [{'uuid': 'd0ee0cf6-895b-42b6-a673-942a9b98e575', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/d0ee0cf6-895b-42b6-a673-942a9b98e575', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d0ee0cf6-895b-42b6-a673-942a9b98e575', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '70b97036-20f0-4669-a2b4-726669f75f81', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/70b97036-20f0-4669-a2b4-726669f75f81', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/70b97036-20f0-4669-a2b4-726669f75f81', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'eaf81f8f-2af1-43f2-8241-a54c97f194d3', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/eaf81f8f-2af1-43f2-8241-a54c97f194d3', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/eaf81f8f-2af1-43f2-8241-a54c97f194d3', '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=eaf81f8f-2af1-43f2-8241-a54c97f194d3'} GET: /v1/volume/targets?detail=True&limit=3 {} GOT:{'targets': [{'uuid': 'c0045bd7-ec61-4b2a-80cc-795775955762', 'created_at': '2024-01-06T13:33:46.808148+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/c0045bd7-ec61-4b2a-80cc-795775955762', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/c0045bd7-ec61-4b2a-80cc-795775955762', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'c7c1f038-7f19-45b3-b03e-449391670d5a', 'created_at': '2024-01-06T13:33:46.820914+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/c7c1f038-7f19-45b3-b03e-449391670d5a', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/c7c1f038-7f19-45b3-b03e-449391670d5a', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'e2232335-4740-409e-8e02-282a7291f3f8', 'created_at': '2024-01-06T13:33:46.825121+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/e2232335-4740-409e-8e02-282a7291f3f8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/e2232335-4740-409e-8e02-282a7291f3f8', '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=e2232335-4740-409e-8e02-282a7291f3f8'} GET: /v1/volume/targets?detail=True {} GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T13:33:47.163351+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-abb56e22-249f-46ea-ab72-5def10baff20 X-Openstack-Ironic-Api-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-22c39a6e-bcfb-4014-b63d-6d5403817de7 X-Openstack-Ironic-Api-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-06T13:33:47.964969+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-c95c15fb-3bb4-4670-8d93-57c5491c66fd X-Openstack-Ironic-Api-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': '24a1dc75-156d-4346-82d6-e9d2d4954447', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/24a1dc75-156d-4346-82d6-e9d2d4954447', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/24a1dc75-156d-4346-82d6-e9d2d4954447', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'dd40462f-ae51-4608-88db-18b03be77a1f', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/dd40462f-ae51-4608-88db-18b03be77a1f', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/dd40462f-ae51-4608-88db-18b03be77a1f', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'f023c601-6e52-4d99-b988-2d427e688d58', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/f023c601-6e52-4d99-b988-2d427e688d58', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f023c601-6e52-4d99-b988-2d427e688d58', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} GET: /v1/volume/targets?fields=uuid,extra {} ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_custom_fields ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_get_collection_pagination_no_uuid ... ok POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-33789af1-9ae8-4027-af26-9f88d1f466db X-Openstack-Ironic-Api-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-06T13:33:46.063767+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-06T13:33:46.063767+00:00', 'updated_at': None, 'boot_index': 0, 'extra': {'str': 'foo', 'int': 123, 'float': 0.1, 'bool': True, 'list': [1, 2], 'none': None, 'dict': {'cat': 'meow'}}, 'properties': {'target_iqn': 'iqn.foo'}, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} POST: /v1/volume/targets {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'volume_type': 'iscsi', 'properties': {'target_iqn': 'iqn.foo'}, 'boot_index': 0, 'volume_id': '12345678', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-106b312b-7242-4f75-9dee-d09b3c5dd526 X-Openstack-Ironic-Api-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-06T13:33:46.484505+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 post /v1/nodes POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b1ca8b7b-fefe-4042-a8ed-ddd7cd333a71 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b1ca8b7b-fefe-4042-a8ed-ddd7cd333a71 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-a33ba894-34d8-47d3-bc66-81219bd3d65d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a33ba894-34d8-47d3-bc66-81219bd3d65d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c7e39462-2e02-4475-b8d1-03b9df404c8c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c7e39462-2e02-4475-b8d1-03b9df404c8c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.TestRBACScopedRequests.test_system_scoped_005_nodes_get_node_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_005_nodes_get_node_admin ... ok ironic.tests.unit.api.controllers.v1.test_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_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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-39086db0-5ca9-4c36-9fa8-7d80e873399f X-Openstack-Ironic-Api-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-06T13:33:49.898631+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-39086db0-5ca9-4c36-9fa8-7d80e873399f X-Openstack-Ironic-Api-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-06T13:33:49.898631+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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_006_nodes_get_node_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_006_nodes_get_node_member ... 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 GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-d8323fee-b10d-4be0-a5b8-e6c4170c150e 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-2c65eb59-8c34-407b-9676-a02e9119c7bc 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-277731a5-a5d9-4aaf-9e09-488978f2361f 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-78a73a2c-9731-4b83-871d-0fcaa7d59922 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 Content-Type: application/json Openstack-Request-Id: req-ccd8c10d-70c9-4094-a8d5-bbdb72601aa7 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 Content-Type: application/json Openstack-Request-Id: req-37e70334-060b-4332-b5ca-87b5738c8cfd 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 Content-Type: application/json Openstack-Request-Id: req-b34548a2-86ef-4c27-ae8a-c1a43f7fbf08 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 Content-Type: application/json Openstack-Request-Id: req-71c29015-70c1-45ce-8ac5-7303f2bbbcf5 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 Content-Type: application/json Openstack-Request-Id: req-f04973be-092f-4280-9b08-8ed640326034 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-7b3c997f-1dcb-4105-8ae9-af14dcb44b97 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-512db7b6-1c77-453d-a9ad-6e6460a98640 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-4aeaa753-0ae7-4553-9da8-0573f46599fe 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 Content-Type: application/json Openstack-Request-Id: req-79e35db7-829c-4d42-8bb7-45618452aedf 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 Content-Type: application/json Openstack-Request-Id: req-182b2b0e-58db-42e5-8414-70db2684d30b 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 Content-Type: application/json Openstack-Request-Id: req-f11db6bb-bdbd-4b96-9df5-f14b0a8e3a38 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 Content-Type: application/json Openstack-Request-Id: req-d74eba64-1a8f-4888-a6f7-410cc29837ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'unrescue'} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_unrescue_in_disallowed_states ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_cleansteps_not_clean ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4f9f0313-f1ad-4a53-b5e8-3edba1b97a9a X-Openstack-Ironic-Api-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-06T13:33:50.600814+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-4f9f0313-f1ad-4a53-b5e8-3edba1b97a9a X-Openstack-Ironic-Api-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-06T13:33:50.600814+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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_volume_target.TestListVolumeTargets.test_links ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_links ... 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.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_configdrive_not_active ... ok ironic.tests.unit.api.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_provision_with_deploy ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy ... 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 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_after_deployfail ... ok ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version ironic.tests.unit.api.controllers.v1.test_volume_target.TestListVolumeTargets.test_one_invalid_api_version ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cef2da11-d227-4b12-80ab-bbce20f5cd05 X-Openstack-Ironic-Api-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-06T13:33:51.245110+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-cef2da11-d227-4b12-80ab-bbce20f5cd05 X-Openstack-Ironic-Api-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-06T13:33:51.245110+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-3c201913-75da-4bd7-a39b-d29c744b6b5c 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": "c100c241-c8f7-428f-805e-ddb96f9f99c0", "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "self"}, {"href": "http://localhost/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000", "rel": "bookmark"}]}, {"uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "instance_uuid": null, "maintenance": false, "power_state": null, "provision_state": "available", "name": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}]}]} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_009_nodes_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_009_nodes_get_admin ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict ... ok ironic.tests.unit.api.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' GOT:{'targets': [{'uuid': '1669bbe0-724c-4825-ad29-55764cfb1ce7', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/1669bbe0-724c-4825-ad29-55764cfb1ce7', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1669bbe0-724c-4825-ad29-55764cfb1ce7', 'rel': 'bookmark'}]}, {'uuid': 'f3602a21-7d4b-49e7-8d86-e20fbc14c706', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/f3602a21-7d4b-49e7-8d86-e20fbc14c706', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f3602a21-7d4b-49e7-8d86-e20fbc14c706', 'rel': 'bookmark'}]}, {'uuid': 'ad8f0374-087e-4775-b965-73e290e5ccf7', 'extra': {}, 'links': [{'href': 'http://localhost/v1/volume/targets/ad8f0374-087e-4775-b965-73e290e5ccf7', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/ad8f0374-087e-4775-b965-73e290e5ccf7', 'rel': 'bookmark'}]}]} GET: /v1/volume/targets?fields=boot_index&limit=2 {} GOT:{'targets': [{'boot_index': 0, 'links': [{'href': 'http://localhost/v1/volume/targets/dbe0eda1-1f1a-4b8e-8364-652fcd12871e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/dbe0eda1-1f1a-4b8e-8364-652fcd12871e', 'rel': 'bookmark'}]}, {'boot_index': 1, 'links': [{'href': 'http://localhost/v1/volume/targets/904106b9-3fbf-4e70-9c7b-f3518060f31e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/904106b9-3fbf-4e70-9c7b-f3518060f31e', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/volume/targets?sort_key=id&sort_dir=asc&fields=boot_index&limit=2&marker=904106b9-3fbf-4e70-9c7b-f3518060f31e'} 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-ac180a7c-1434-482f-8247-d5fff7d5eb17 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T13:33:50.771354+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/5da7eaf4-46f3-4186-91dd-5a512ec25f05 {} GOT:{'uuid': '5da7eaf4-46f3-4186-91dd-5a512ec25f05', 'created_at': '2024-01-06T13:33:51.547007+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/5da7eaf4-46f3-4186-91dd-5a512ec25f05', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5da7eaf4-46f3-4186-91dd-5a512ec25f05', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/volume/targets/5da7eaf4-46f3-4186-91dd-5a512ec25f05 {} GOT:{'uuid': '5da7eaf4-46f3-4186-91dd-5a512ec25f05', 'created_at': '2024-01-06T13:33:51.547007+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/5da7eaf4-46f3-4186-91dd-5a512ec25f05', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5da7eaf4-46f3-4186-91dd-5a512ec25f05', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /volume/targets/5da7eaf4-46f3-4186-91dd-5a512ec25f05 {} GOT:{'uuid': '5da7eaf4-46f3-4186-91dd-5a512ec25f05', 'created_at': '2024-01-06T13:33:51.547007+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/5da7eaf4-46f3-4186-91dd-5a512ec25f05', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/5da7eaf4-46f3-4186-91dd-5a512ec25f05', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/volume/targets {} GOT:{'targets': [{'uuid': 'f0da0e1d-eac0-4b60-b653-4dc3afc72812', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/f0da0e1d-eac0-4b60-b653-4dc3afc72812', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/f0da0e1d-eac0-4b60-b653-4dc3afc72812', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '85814696-ad5b-4b2a-b437-89f3f5b3cfde', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/85814696-ad5b-4b2a-b437-89f3f5b3cfde', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/85814696-ad5b-4b2a-b437-89f3f5b3cfde', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '62101e26-d1f5-4488-ae51-14d5615ecac8', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/62101e26-d1f5-4488-ae51-14d5615ecac8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/62101e26-d1f5-4488-ae51-14d5615ecac8', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'd5c6b3f2-9635-4956-8df1-e09f8b31d7ba', 'boot_index': 3, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/d5c6b3f2-9635-4956-8df1-e09f8b31d7ba', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d5c6b3f2-9635-4956-8df1-e09f8b31d7ba', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'd8d8ef58-a697-4216-a67a-c7a94bf4eea8', 'boot_index': 4, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/d8d8ef58-a697-4216-a67a-c7a94bf4eea8', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/d8d8ef58-a697-4216-a67a-c7a94bf4eea8', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} GET: /v1/volume/targets {} GOT:{'targets': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} GET: /v1/volume/targets {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/volume/targets?sort_key=uuid {} 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.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_as_dict_all_fields ... ok ironic.tests.unit.api.controllers.v1.test_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_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.TestRBACScoped.test_rbac_legacy_001_values ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_001_values ... skipped 'These are fake reference values for YAML templating' ironic.tests.unit.api.controllers.v1.test_node.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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c201913-75da-4bd7-a39b-d29c744b6b5c 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": "c100c241-c8f7-428f-805e-ddb96f9f99c0", "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-bd4f75d8-61c0-4f18-882a-141f9a497985 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-06T13:33:53.611544+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T13:33:53.638747+00:00", "updated_at": "2024-01-06T13:33:53.670488+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": "6cc9f9bd-5a2c-4821-a500-52bb18be2ec2", "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": "6cc9f9bd-5a2c-4821-a500-52bb18be2ec2", "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-06T13:33:53.784199+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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-bd4f75d8-61c0-4f18-882a-141f9a497985 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-06T13:33:53.611544+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T13:33:53.638747+00:00", "updated_at": "2024-01-06T13:33:53.670488+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": "6cc9f9bd-5a2c-4821-a500-52bb18be2ec2", "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": "6cc9f9bd-5a2c-4821-a500-52bb18be2ec2", "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-06T13:33:53.784199+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_url ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_configdrive_url ... ok ironic.tests.unit.api.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 /usr/lib/python3/dist-packages/jsonschema/validators.py:1074: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps_fail ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_deploy_deploy_steps_fail ... ok ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_without_token ... ok API ACL Testing Path get /v1/nodes/detail GET: /v1/nodes/detail {} ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address ironic.tests.unit.common.test_neutron.TestUpdatePortAddress.test_update_port_address ... ok ironic.tests.unit.api.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.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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba32d306-9a3f-4881-a44f-68bf2189ca1f 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-06T13:33:55.185991+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T13:33:55.205881+00:00", "updated_at": "2024-01-06T13:33:55.244348+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": "80a79925-9036-4348-954c-320b4ae32a80", "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": "80a79925-9036-4348-954c-320b4ae32a80", "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-06T13:33:55.370044+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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-ba32d306-9a3f-4881-a44f-68bf2189ca1f 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-06T13:33:55.185991+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T13:33:55.205881+00:00", "updated_at": "2024-01-06T13:33:55.244348+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": "80a79925-9036-4348-954c-320b4ae32a80", "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": "80a79925-9036-4348-954c-320b4ae32a80", "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-06T13:33:55.370044+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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.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.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 /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_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.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: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-02b79ea3-c14f-48f7-935a-86ca89ba6ce7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.38 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 is locked by host fake-host, please retry after the current operation is completed.\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'provide', 'clean_steps': 'foo'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-bca9e5f8-94bb-46bf-817a-a9896e15a77f 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 Content-Type: application/json Openstack-Request-Id: req-ac61a93f-c54c-43d6-8704-c6144b6a7a6f X-Openstack-Ironic-Api-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-c2f9b464-d0fa-4a02-9b96-518612e997b0 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-cfafb59f-c8db-47c5-bdfe-02934138171e 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-6da54285-90db-4b35-8cf5-2337b999a9ea 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-ba271c8c-aa27-4953-86d4-ddd37468351e 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-5980d955-693e-4f12-82f7-5b39a0c3b2b1 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 Content-Type: application/json Openstack-Request-Id: req-7a2c3f90-c5a9-457c-8956-76443ba1ec0e 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 Content-Type: application/json Openstack-Request-Id: req-f781650a-a520-426f-8538-1ccfad7cf153 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-50650a5b-bbd1-4670-bc89-30fad3b7e002 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-fe79c6ad-113f-4585-99ce-2978af88b5ac 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'}]} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-bbfb7612-1e1b-489c-8fd3-3c20eeee7d4a X-Openstack-Ironic-Api-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-42ce380c-aa7b-4c0f-94f3-202da76b1ba2 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-9e021454-b807-4f7a-a594-24cfaecf027a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.35 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'rebuild', 'deploy_steps': [{'interface': 'bios', 'step': 'factory_reset', 'priority': 95, 'args': {}}]} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_deploy_steps ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_deploy_steps ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_provision_with_rebuild_unsupported_configdrive ... ok API ACL Testing Path get /v1/nodes/detail GET: /v1/nodes/detail {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-143bd8fb-6e22-4be8-82a2-1a6e60fd229b 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-06T13:33:56.141330+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T13:33:56.176799+00:00", "updated_at": "2024-01-06T13:33:56.233377+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": "5a0be882-dccd-4bec-bf40-dc88477f2045", "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": "5a0be882-dccd-4bec-bf40-dc88477f2045", "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-06T13:33:56.296636+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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-143bd8fb-6e22-4be8-82a2-1a6e60fd229b 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-06T13:33:56.141330+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T13:33:56.176799+00:00", "updated_at": "2024-01-06T13:33:56.233377+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": "5a0be882-dccd-4bec-bf40-dc88477f2045", "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": "5a0be882-dccd-4bec-bf40-dc88477f2045", "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-06T13:33:56.296636+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": null, "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": [], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "self"}, {"href": "http://localhost/nodes/18a552fb-dcd2-43bf-9302-e4c93287be11/volume", "rel": "bookmark"}]}]}ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_013_nodes_detail_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_013_nodes_detail_get_reader ... ok ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter ironic.tests.unit.common.test_nova.TestNovaAdapter.test_get_nova_adapter ... 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.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_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.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.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.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_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 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-7da4b440-adf8-4786-8e68-f8991a115c7b X-Openstack-Ironic-Api-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-06T13:33:57.049166+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-7da4b440-adf8-4786-8e68-f8991a115c7b X-Openstack-Ironic-Api-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-06T13:33:57.049166+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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.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.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_node.TestPut.test_put_raid ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-622d58c9-bc80-4323-a20a-a0a9c358815f X-Openstack-Ironic-Api-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-06T13:33:57.747666+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-622d58c9-bc80-4323-a20a-a0a9c358815f X-Openstack-Ironic-Api-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-06T13:33:57.747666+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.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_put_raid_iface_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_iface_not_supported ... ok ironic.tests.unit.api.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.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.TestPut.test_put_raid_invalid_parameter_value ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_put_raid_invalid_parameter_value ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_008_nodes_get_node_other_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_008_nodes_get_node_other_admin ... ok ironic.tests.unit.api.test_acl.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.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.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.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_rescue_raises_error_before_1_38 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_rescue_raises_error_before_1_38 ... ok ironic.tests.unit.api.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.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_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.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.TestPut.test_secure_boot_invalid_request_boo ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_invalid_request_boo ... ok ironic.tests.unit.api.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.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_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_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_secure_boot_off_older_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_off_older_soft_ver ... ok ironic.tests.unit.api.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_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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73aa9ef8-41b1-4cd4-bdb2-11546585d470 X-Openstack-Ironic-Api-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-06T13:33:58.622714+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-73aa9ef8-41b1-4cd4-bdb2-11546585d470 X-Openstack-Ironic-Api-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-06T13:33:58.622714+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-7cb61bf6-a9aa-46c2-84e9-f0a779b7d868 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7cb61bf6-a9aa-46c2-84e9-f0a779b7d868 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-7057f7df-886d-491c-b7ca-293931e6d855 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7057f7df-886d-491c-b7ca-293931e6d855 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.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_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.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_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_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.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.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.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 GOT:{'targets': [{'uuid': '6ac55c01-fc75-4e3e-918b-c621a538c73e', 'boot_index': 2, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/6ac55c01-fc75-4e3e-918b-c621a538c73e', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/6ac55c01-fc75-4e3e-918b-c621a538c73e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': '727c279b-1f42-4a38-aa5a-d2a7f40dc9e6', 'boot_index': 0, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/727c279b-1f42-4a38-aa5a-d2a7f40dc9e6', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/727c279b-1f42-4a38-aa5a-d2a7f40dc9e6', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}, {'uuid': 'bc71d097-fafd-4568-a331-87d017cf0ce2', 'boot_index': 1, 'volume_id': '12345678', 'volume_type': 'iscsi', 'links': [{'href': 'http://localhost/v1/volume/targets/bc71d097-fafd-4568-a331-87d017cf0ce2', 'rel': 'self'}, {'href': 'http://localhost/volume/targets/bc71d097-fafd-4568-a331-87d017cf0ce2', '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-4e41025d-8578-4794-aa55-121d77284f2d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/volume/targets?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-dc92933c-6efc-4b40-9030-37d8fda20cbb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value extra is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/volume/targets?sort_key=properties {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-1d065be8-90c8-4011-8f17-c99bf4503f68 X-Openstack-Ironic-Api-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}"} 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-ceb97422-2a68-4ba3-9322-c8573805dec3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-20bd4861-4b3f-4730-900f-d05885bd8eab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-71c1053c-3f1a-416f-9e2c-8bd415650abc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-e7805f27-c21a-4db1-bfda-0f149a362278 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-95da4eed-aff2-4198-b9a7-ee609ed5b163 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-84a98731-14ab-4dde-8c9e-6c03e4a51f92 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-9be89d48-708d-48fe-b3a5-f3bf08a3ee6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes GET: /v1/nodes {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f3d46a84-a566-4885-ba3e-18e52086109b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-f8356ece-3a72-4496-899c-86e43c9af512 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"nodes": []} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f8356ece-3a72-4496-899c-86e43c9af512 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 Content-Type: application/json Openstack-Request-Id: req-2dd15620-0f1a-42cb-9e4c-fc87f2ab6ec0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-953d39a4-bdf8-42e5-b377-04ed29dfb00a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} 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:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-8c104b1d-68ab-44d8-9c4a-d9506acd3c2f 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 Content-Type: application/json Openstack-Request-Id: req-136485a6-1d87-437d-bc79-0993477f4222 X-Openstack-Ironic-Api-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-1e76ca8c-7db2-4062-882c-791e0e0f6b36 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-0d15b674-ea0c-4530-b416-85cd2999dbae 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-92c9b5ff-585a-4fa8-916b-0683cd8ceca7 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-fa567d30-f989-42d1-b8ca-ff5add64b220 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3fa3735c-b99a-471f-ac3d-5c976e25b243 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.12 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Driver fake-hardware does not support raid (disabled or not implemented).\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'logical_disks': [{'size_gb': 100, 'raid_level': 1}]} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-7923e41c-a0be-49fb-98ec-9e640f2ccfe2 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 Content-Type: application/json Openstack-Request-Id: req-a2826e99-71cb-4c2d-88a8-e2a026c5d5f3 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 Content-Type: application/json Openstack-Request-Id: req-80beb1cc-4650-4e45-a0df-bdf90f2dde87 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} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a05744e4-7342-4d88-be32-9c90778a7805 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 Content-Type: application/json Openstack-Request-Id: req-312922e0-987a-413b-b588-1a84bdb1f4a5 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 Content-Type: application/json Openstack-Request-Id: req-9ee62675-964a-492c-ae99-0f9362dc3ef7 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 Content-Type: application/json Openstack-Request-Id: req-a186e73e-23b8-4732-ac2e-b06fe9729a5c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.75 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"This endpoint is supported starting with the API version 1.76\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': False} GOT:Response: 202 Accepted Location: http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states Openstack-Request-Id: req-cdfaf05f-3569-4591-8d7b-188216e8771f 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-5b81d3b8-bb9e-4256-9d2b-71c6ffeea319 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 Content-Type: application/json Openstack-Request-Id: req-c83f2dfa-1c9b-4b55-84a7-3ce27627315f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.76 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid target: Unrecognized value '2', acceptable values are: '0', '1', 'f', 'false', 'n', 'no', 'off', 'on', 't', 'true', 'y', 'yes'\", \"debuginfo\": null}"} PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': True} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_older_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_older_soft_ver ... ok ironic.tests.unit.api.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.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.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_soft_ver ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_secure_boot_on_valid_soft_ver ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_014_nodes_node_ident_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_014_nodes_node_ident_get_admin ... ok ironic.tests.unit.api.controllers.v1.test_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.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.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.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.test_acl.TestRBACScoped.test_rbac_legacy_015_nodes_node_ident_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_015_nodes_node_ident_get_member ... ok ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template ironic.tests.unit.common.test_pxe_utils.PXEBuildKickstartConfigOptionsTestCase.test_validate_kickstart_template ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_by_name ... ok ironic.tests.unit.common.test_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.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_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_node.TestPut.test_set_boot_device_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_not_supported ... ok ironic.tests.unit.common.test_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_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.test_acl.TestRBACScopedRequests.test_system_scoped_024_nodes_node_ident_delete_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_024_nodes_node_ident_delete_reader ... ok ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_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_node.TestPut.test_set_boot_device_persistent_invalid_value ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_boot_device_persistent_invalid_value ... ok ironic.tests.unit.common.test_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.TestPut.test_set_console_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name ... ok ironic.tests.unit.api.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.TestRBACScoped.test_rbac_legacy_018_nodes_node_ident_patch_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_018_nodes_node_ident_patch_member ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_by_name_unsupported ... ok ironic.tests.unit.common.test_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.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.TestRBACScopedRequests.test_system_scoped_026_nodes_validate_get_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_026_nodes_validate_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_019_nodes_node_ident_patch_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_019_nodes_node_ident_patch_observer ... ok ironic.tests.unit.common.test_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.TestPut.test_set_console_mode_bad_request_missing_parameter ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_bad_request_missing_parameter ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_020_nodes_node_ident_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_020_nodes_node_ident_delete_admin ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_console_not_supported ... ok 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-e18415d3-dce6-4b2a-982a-6b9df514f9da 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-b93ec58f-2fa6-43fe-996f-4aa36565b05b 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-b01c6297-b9f7-455a-a17e-185acd29542b 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-ac8f1f55-888b-4053-acd7-c0acf51c2094 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-e851870d-2103-486e-b90f-29bf49e6d761 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-732c1b1f-39c6-405c-bf6f-25b00b99f248 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-3e265e99-3c1a-4f03-bbe1-80b15f7dd8bc 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-be55e524-c689-4172-b79c-d7a17dde5fc0 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-b54ba082-207d-4f7c-9594-bfac06427e1c 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/008fd3e7-79ed-4f5d-98a2-67bb69c8f689 {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2c962d1e-e596-4064-b4c5-9c9ce56a9280 X-Openstack-Ironic-Api-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-3a3f718c-197f-4aee-a27c-534f403abe57 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-a92e83bb-eb80-4059-9481-b232415a93f5 X-Openstack-Ironic-Api-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-10884cec-c6fb-475f-8ee1-6ad84f2c358f X-Openstack-Ironic-Api-Maximum-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/bad/path {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: / {} GOT:{'name': 'OpenStack Ironic API', 'description': 'Ironic is an OpenStack project which enables the provision and management of baremetal machines.', 'default_version': {'id': 'v1', 'links': [{'href': 'http://spam.ham/eggs/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}, 'versions': [{'id': 'v1', 'links': [{'href': 'http://spam.ham/eggs/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}]} GET: / {} GOT:{'name': 'OpenStack Ironic API', 'description': 'Ironic is an OpenStack project which enables the provision and management of baremetal machines.', 'default_version': {'id': 'v1', 'links': [{'href': 'https://mycloud.com/ironic/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}, 'versions': [{'id': 'v1', 'links': [{'href': 'https://mycloud.com/ironic/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}]} 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. {'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-c4a2eb4e-952c-40d5-ad37-1c182de10d63', '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.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 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-97d711ce-9754-4de4-b876-b3d710244375 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-97d711ce-9754-4de4-b876-b3d710244375 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-b590a948-eaa7-4418-a4ef-4a3fc25bedcd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b590a948-eaa7-4418-a4ef-4a3fc25bedcd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2d4b0f23-f9f5-4b64-acfa-d3b8ecad4852 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2d4b0f23-f9f5-4b64-acfa-d3b8ecad4852 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-8834f48c-bb54-4ef4-97c6-ceedd1e58b4f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8834f48c-bb54-4ef4-97c6-ceedd1e58b4f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-57db5b4a-420b-479e-9c30-bd96609a2b9b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-57db5b4a-420b-479e-9c30-bd96609a2b9b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9a32d72e-7018-4e5e-9bdf-9d951c5c19e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9a32d72e-7018-4e5e-9bdf-9d951c5c19e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8aaa315c-47e0-4116-9e4f-9db68bc1d1ea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8aaa315c-47e0-4116-9e4f-9db68bc1d1ea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-9bb2ff5d-e408-4f32-8f53-211afe026800 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9bb2ff5d-e408-4f32-8f53-211afe026800 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_console_mode_disabled ... ok ironic.tests.unit.common.test_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.api.test_acl.TestRBACScoped.test_rbac_legacy_021_nodes_node_ident_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_021_nodes_node_ident_delete_member ... ok ironic.tests.unit.api.test_acl.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.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.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.TestRBACScoped.test_rbac_legacy_022_nodes_node_ident_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_022_nodes_node_ident_delete_observer ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state ... ok ironic.tests.unit.api.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.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.TestPut.test_set_indicator_state_invalid_value ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_invalid_value ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_023_nodes_validate_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_023_nodes_validate_get_admin ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_not_supported ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_not_supported ... ok ironic.tests.unit.api.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.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_swift ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_build_pxe_config_options_ipxe_rescue_swift ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_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.TestPut.test_set_indicator_state_qs ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_qs ... 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.test_acl.TestRBACScopedRequests.test_system_scoped_031_nodes_maintenance_delete_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_031_nodes_maintenance_delete_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_025_nodes_validate_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_025_nodes_validate_get_observer ... ok GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-63a99a72-02df-4912-9327-4938f9f0723e 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-21ca4764-a7aa-40d8-8f61-6ff83f543dc0 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-b43cf7ea-679a-4165-9e96-bf707de16ae7 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-71189a3d-e9b6-4266-8fba-a66a0ec5f291 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-85dd47b3-91c0-4f35-88ce-1cd2b5cf1d35 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 Content-Type: application/json Openstack-Request-Id: req-5f94cdb2-feb7-4d91-b027-afd4aac6dc27 X-Openstack-Ironic-Api-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-9ca11798-e759-4c6b-adac-5a2e1224b2d8 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 Content-Type: application/json Openstack-Request-Id: req-9bd75aef-8ed6-406c-8a0f-5b4dcd5e20a9 X-Openstack-Ironic-Api-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-5cc54267-a9ed-476b-8211-f6e2c5905505 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 Content-Type: application/json Openstack-Request-Id: req-db670b4f-9961-400e-8353-737db4cc46a4 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d27ea549-53a8-468f-94bc-38037b6ae331 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-22fcfff8-060a-4839-a996-cc07c1bc95ba X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b675a664-e9e1-4617-b775-811169f518f8 X-Openstack-Ironic-Api-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-ffe17319-c5b1-494d-9da4-d10bccf869be 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-efa6cd5b-38b0-4c99-9f4a-574d38d2927d 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-59176a35-e4b3-43da-bce5-6b30e0b68a99 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 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-15d186ea-a542-4866-9d41-97c8147afd12 X-Openstack-Ironic-Api-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-3ac198e0-4a29-44f2-b8ce-01831964e8a5 X-Openstack-Ironic-Api-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-22c70cff-9ac9-4a39-b850-9215d514e4ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators/led@system {'state': 'on'} ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_versioning ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_indicator_state_versioning ... ok ironic.tests.unit.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_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_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.test_acl.TestRBACScoped.test_rbac_legacy_026_nodes_maintenance_put_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_026_nodes_maintenance_put_admin ... ok ironic.tests.unit.api.controllers.v1.test_node.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_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.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.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.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.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.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_uefi ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_dhcp_options_for_instance_ipxe_uefi ... ok ironic.tests.unit.api.test_acl.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.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ed6e2dfc-5083-4256-a206-4d1724d8bc65 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e2575fb0-abe2-45eb-8551-047290af44cf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-8d37979c-04ba-470b-b2ad-7114eb598bcc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-536ffcf2-692e-4ecd-9904-9aafbcb1d212 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d5485356-a1d4-4147-bf1b-d1a6b98ec161 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-da0685ec-bd0c-40dd-8c95-ad6dfdc24a24 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-980c9ff4-5da8-47c6-8657-835aed1647a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d2348173-b29b-4744-9125-9f89c32572fa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b9761203-6e41-46eb-8ee8-a282bc243ea9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f6d530be-d8ba-419d-b857-1e06fbca092c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e7d52540-b264-48d5-a941-3533998f706a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-062873fd-795b-49be-9a7a-bcf243350ead X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a90ad0ea-2fa6-4059-ae3f-2010941676d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b5b13376-5e7b-4927-b49e-618df2776cbe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ad60f67b-58f9-4c6a-adff-f6d907c9275b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_028_nodes_maintenance_put_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_028_nodes_maintenance_put_observer ... ok ironic.tests.unit.api.controllers.v1.test_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_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.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason ... ok ironic.tests.unit.api.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0ccd7b83-e575-4a75-b78b-5dffe54beead X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0ccd7b83-e575-4a75-b78b-5dffe54beead X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-c4c7c84a-1a54-48f8-a900-656e676f8600 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c4c7c84a-1a54-48f8-a900-656e676f8600 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-eeb30a49-4e2e-40e2-b648-8c25fae98570 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-eeb30a49-4e2e-40e2-b648-8c25fae98570 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-86ec77a0-9978-4075-b47a-5360fab3fb79 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-86ec77a0-9978-4075-b47a-5360fab3fb79 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-3b5bc97d-9ebf-4a94-a90f-cc4513c7c241 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3b5bc97d-9ebf-4a94-a90f-cc4513c7c241 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-35538c30-5540-48af-8749-23d8188ac386 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-35538c30-5540-48af-8749-23d8188ac386 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-074cede5-ad9c-492a-a23e-78387ced9db7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-074cede5-ad9c-492a-a23e-78387ced9db7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a483c553-75ef-4688-8161-d3ad7cd7bd6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a483c553-75ef-4688-8161-d3ad7cd7bd6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options ironic.tests.unit.common.test_pxe_utils.iPXEBuildConfigOptionsTestCase.test_get_volume_pxe_options ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_set_node_maintenance_mode_no_reason_by_name ... ok ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 ironic.tests.unit.api.controllers.v1.test_node.TestPut.test_unrescue_raises_error_before_1_38 ... ok ironic.tests.unit.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.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.api.test_acl.TestRBACScoped.test_rbac_legacy_030_nodes_maintenance_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_030_nodes_maintenance_delete_member ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_collection_links ... 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_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_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.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.api.test_acl.TestRBACScopedRequests.test_system_scoped_037_nodes_management_boot_device_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_037_nodes_management_boot_device_get_admin ... ok ironic.tests.unit.api.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.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.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.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_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.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_port.TestListPorts.test_detail ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_032_nodes_management_boot_device_put_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_032_nodes_management_boot_device_put_admin ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_against_single ... 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.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_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_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.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_port.TestListPorts.test_detail_query ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_query ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_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_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id ironic.tests.unit.common.test_rpc.TestUtils.test_get_versioned_notifier_no_publisher_id ... ok GOT:Response: 204 No Content Openstack-Request-Id: req-9e1aac0e-e5ef-4218-ae31-2ddfbcdf5afb 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-508870c7-b7ec-4289-bebe-b211ffe51f2d 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-59331338-76c6-48bf-9507-9d98effef8c5 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-c03ccec1-206a-450a-a711-4416f8441c12 X-Openstack-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-f4a5e26c-fa7f-4607-aa58-4bb22c495aa7 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-df81796e-a421-4580-9927-f3cc8484041b 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-715df49d-5ff9-4fc5-b4ec-2112d8b757c1 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}"} GET: /v1/ports/?limit=3 {} GOT:{'ports': [{'uuid': '80f8baee-8f1c-49f0-bf4d-fdbc8bbc742c', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/80f8baee-8f1c-49f0-bf4d-fdbc8bbc742c', 'rel': 'self'}, {'href': 'http://localhost/ports/80f8baee-8f1c-49f0-bf4d-fdbc8bbc742c', 'rel': 'bookmark'}]}, {'uuid': '17b53936-cc74-4775-8ae6-2d897fd70490', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/17b53936-cc74-4775-8ae6-2d897fd70490', 'rel': 'self'}, {'href': 'http://localhost/ports/17b53936-cc74-4775-8ae6-2d897fd70490', 'rel': 'bookmark'}]}, {'uuid': 'ce19b4a1-520e-4ffb-9018-4f8701e9d92e', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/ce19b4a1-520e-4ffb-9018-4f8701e9d92e', 'rel': 'self'}, {'href': 'http://localhost/ports/ce19b4a1-520e-4ffb-9018-4f8701e9d92e', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=ce19b4a1-520e-4ffb-9018-4f8701e9d92e'} GET: /v1/ports?fields=address,uuid {} GOT:{'ports': [{'uuid': 'bea61325-b453-4dbf-a2e0-5f1761169b1b', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/bea61325-b453-4dbf-a2e0-5f1761169b1b', 'rel': 'self'}, {'href': 'http://localhost/ports/bea61325-b453-4dbf-a2e0-5f1761169b1b', 'rel': 'bookmark'}]}, {'uuid': '8c3c585d-3532-4237-8c43-1e199da04b28', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/8c3c585d-3532-4237-8c43-1e199da04b28', 'rel': 'self'}, {'href': 'http://localhost/ports/8c3c585d-3532-4237-8c43-1e199da04b28', 'rel': 'bookmark'}]}, {'uuid': '2f32e34d-122e-4c4c-8997-d1a7802aa556', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/2f32e34d-122e-4c4c-8997-d1a7802aa556', 'rel': 'self'}, {'href': 'http://localhost/ports/2f32e34d-122e-4c4c-8997-d1a7802aa556', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=2f32e34d-122e-4c4c-8997-d1a7802aa556'} GET: /v1/ports {} GOT:{'ports': [{'uuid': '4666583d-d32d-4c06-9325-a2bc46fec02d', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/4666583d-d32d-4c06-9325-a2bc46fec02d', 'rel': 'self'}, {'href': 'http://localhost/ports/4666583d-d32d-4c06-9325-a2bc46fec02d', 'rel': 'bookmark'}]}, {'uuid': '544da296-d523-4db2-a8d8-545cd32869fd', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/544da296-d523-4db2-a8d8-545cd32869fd', 'rel': 'self'}, {'href': 'http://localhost/ports/544da296-d523-4db2-a8d8-545cd32869fd', 'rel': 'bookmark'}]}, {'uuid': '9d0d3d24-3376-49af-bb85-ac1742ba1f34', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/9d0d3d24-3376-49af-bb85-ac1742ba1f34', 'rel': 'self'}, {'href': 'http://localhost/ports/9d0d3d24-3376-49af-bb85-ac1742ba1f34', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=3&marker=9d0d3d24-3376-49af-bb85-ac1742ba1f34'} GET: /v1/ports/detail {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T13:34:17.022971+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-0eefe9b0-e457-44d0-82a6-bf4eec8d56de X-Openstack-Ironic-Api-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-2d58ac4e-21e5-4abe-83eb-be904b9ab8e2 X-Openstack-Ironic-Api-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-06T13:34:17.840333+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-06T13:34:18.139984+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 {} 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_rpc.TestUtils.test_init_globals_notifications_disabled ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_disabled ... 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.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_rpc.TestUtils.test_init_globals_notifications_enabled ironic.tests.unit.common.test_rpc.TestUtils.test_init_globals_notifications_enabled ... 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.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_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_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.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_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.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_detail_using_query_false_and_fields ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_036_nodes_management_boot_device_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_036_nodes_management_boot_device_get_member ... ok ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables ironic.tests.unit.common.test_utils.ExecuteTestCase.test_execute_use_standard_locale_no_env_variables ... ok ironic.tests.unit.api.controllers.v1.test_port.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_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.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_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_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2e5796f5-9828-4ccc-829a-23074e775d13 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2e5796f5-9828-4ccc-829a-23074e775d13 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-2b8fec22-f72a-40c5-b639-773ac70ccf60 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2b8fec22-f72a-40c5-b639-773ac70ccf60 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-588e2a7c-f961-49ed-b6cd-3708dfa73d7b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-588e2a7c-f961-49ed-b6cd-3708dfa73d7b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7b5e05a9-23db-4f92-aeda-78675a52ea3b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7b5e05a9-23db-4f92-aeda-78675a52ea3b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3899464e-4259-4bc9-ad96-907d876b6190 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-3899464e-4259-4bc9-ad96-907d876b6190 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c92a9fa1-2fdb-4835-9b63-e9289fa87845 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c92a9fa1-2fdb-4835-9b63-e9289fa87845 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a028473a-f8a0-4e82-963c-680752c874fa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a028473a-f8a0-4e82-963c-680752c874fa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-68e3cf22-80f6-4dd6-96a2-3e5caa2bc77b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-68e3cf22-80f6-4dd6-96a2-3e5caa2bc77b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_boot_device\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_043_nodes_management_inject_nmi_put_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_043_nodes_management_inject_nmi_put_admin ... ok ironic.tests.unit.api.test_acl.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_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_port.TestListPorts.test_empty ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_empty ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_get_updated_capabilities_capabilities_not_dict ... ok ironic.tests.unit.api.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.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_038_nodes_management_boot_device_supported_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin ... ok ironic.tests.unit.api.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.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.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin_no_match ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_non_admin_no_match ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_039_nodes_management_boot_device_supported_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_045_nodes_management_inject_nmi_put_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_045_nodes_management_inject_nmi_put_reader ... ok ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail ironic.tests.unit.common.test_utils.GetUpdatedCapabilitiesTestCase.test_validate_network_port_fail ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_name_not_supported ... ok ironic.tests.unit.api.controllers.v1.test_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_acl.TestRBACScoped.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_040_nodes_management_boot_device_supported_get_observer ... ok ironic.tests.unit.api.test_acl.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_port.TestListPorts.test_get_all_by_node_uuid_and_name ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_node_uuid_and_name ... ok ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_check_orphaned_allocations ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_041_nodes_management_inject_nmi_put_admin ... ok ironic.tests.unit.api.controllers.v1.test_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.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.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.TestListPorts.test_get_all_by_portgroup_uuid ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid ... ok 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-9b261c47-2d78-441a-ac95-b8ce21502dbf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6ff90b42-1c7c-4df2-8686-ea8dba8e077d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-eb6e04bc-ffff-4b38-a005-265e7f8de451 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0e2e1de8-4e40-40ae-b10a-b676e7b2799e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d3a9a4dc-4665-494f-82a7-9d03e52a9846 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8f3bab0c-cbc1-4227-80a7-6eb8c93956b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c97f143e-5157-43c8-ba40-c2233f0b24f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0b51b357-dbae-4e8f-9aeb-2afad25c70ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-44a42be5-dacc-429b-8db3-34fdf3ffebbb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-248706c9-4ef5-4aaa-87aa-9d975261dbfa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ffb884cb-91b0-4b53-865b-aa76e1852d6c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4add2c65-3efd-434a-9958-ab6405befb39 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ad768f52-9415-4783-b167-5eedd3afaaec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c781efed-ae90-45fa-b46c-00f480d7a442 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 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 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': 'a44ce59f-7197-46b8-94f5-6baeaac6a568', 'created_at': '2024-01-06T13:34:18.887542+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/a44ce59f-7197-46b8-94f5-6baeaac6a568', 'rel': 'self'}, {'href': 'http://localhost/ports/a44ce59f-7197-46b8-94f5-6baeaac6a568', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': None}, {'uuid': '8b86d939-6213-4cc4-afa5-e4cb63325ca0', 'created_at': '2024-01-06T13:34:18.892699+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/8b86d939-6213-4cc4-afa5-e4cb63325ca0', 'rel': 'self'}, {'href': 'http://localhost/ports/8b86d939-6213-4cc4-afa5-e4cb63325ca0', '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-f77619f1-4854-4e35-abf4-2554615b5b8c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports?detail=True&fields=name {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-4ad06dde-cd70-4866-bad3-863bd4316b0b X-Openstack-Ironic-Api-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 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-e8b9386d-11ac-4795-8b46-84a7adbf81ec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Invalid query parameter ?detail=True received.\", \"debuginfo\": null}"} GET: /v1/ports/detail?node=test-node&node_uuid=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'ports': []} GET: /v1/ports {} GOT:{'ports': []} GET: /v1/ports?node=test-node {} GOT:{'ports': [{'uuid': 'ea7c7024-a346-494a-acf6-88181e370cd2', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/ea7c7024-a346-494a-acf6-88181e370cd2', 'rel': 'self'}, {'href': 'http://localhost/ports/ea7c7024-a346-494a-acf6-88181e370cd2', 'rel': 'bookmark'}]}, {'uuid': '3f37d9ff-e31e-4f9d-93b7-f1767e1b8e0e', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/3f37d9ff-e31e-4f9d-93b7-f1767e1b8e0e', 'rel': 'self'}, {'href': 'http://localhost/ports/3f37d9ff-e31e-4f9d-93b7-f1767e1b8e0e', 'rel': 'bookmark'}]}, {'uuid': '40c7a852-b5a7-40a4-82cc-d11e4ff8ad41', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/40c7a852-b5a7-40a4-82cc-d11e4ff8ad41', 'rel': 'self'}, {'href': 'http://localhost/ports/40c7a852-b5a7-40a4-82cc-d11e4ff8ad41', '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-f5fe8687-b411-489c-9813-87c3d74b9fa7 X-Openstack-Ironic-Api-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': '7b22cb21-db77-4744-be46-9c613a29a9a4', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/7b22cb21-db77-4744-be46-9c613a29a9a4', 'rel': 'self'}, {'href': 'http://localhost/ports/7b22cb21-db77-4744-be46-9c613a29a9a4', 'rel': 'bookmark'}]}, {'uuid': '2ccfccbe-8035-4350-8901-b8a6a2a3668b', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/2ccfccbe-8035-4350-8901-b8a6a2a3668b', 'rel': 'self'}, {'href': 'http://localhost/ports/2ccfccbe-8035-4350-8901-b8a6a2a3668b', 'rel': 'bookmark'}]}, {'uuid': '0e113a4b-cd3d-44bb-a166-0c6a8380d9c4', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/0e113a4b-cd3d-44bb-a166-0c6a8380d9c4', 'rel': 'self'}, {'href': 'http://localhost/ports/0e113a4b-cd3d-44bb-a166-0c6a8380d9c4', '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-06T13:34:23.132035+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-06T13:34:23.459525+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-06T13:34:23.803902+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 {} ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_and_node_uuid ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_get_all_by_portgroup_uuid_non_admin ... ok ironic.tests.unit.api.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_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.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.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.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_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.test_acl.TestRBACScopedRequests.test_system_scoped_049_nodes_states_power_put_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_049_nodes_states_power_put_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_044_nodes_states_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_044_nodes_states_get_admin ... 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.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.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.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.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 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2c8b6dea-1a55-4625-a5a4-f5057a2f85b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2c8b6dea-1a55-4625-a5a4-f5057a2f85b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-4ee71e1c-eb83-4f68-994f-40be2c6ae10f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4ee71e1c-eb83-4f68-994f-40be2c6ae10f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-fc731953-37bb-49f0-88f0-ac318f15ffa7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-fc731953-37bb-49f0-88f0-ac318f15ffa7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-175364df-e1d3-42dd-8391-cd5107b64fe4 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-175364df-e1d3-42dd-8391-cd5107b64fe4 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 Content-Type: application/json Openstack-Request-Id: req-c2a280a6-f32b-45f0-af8a-fbb33e32f1d8 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-c2a280a6-f32b-45f0-af8a-fbb33e32f1d8 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 Content-Type: application/json Openstack-Request-Id: req-862392e4-8f9b-4513-b42d-f112a878e3ac 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-862392e4-8f9b-4513-b42d-f112a878e3ac 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-02f0e90c-4dce-45a7-86c3-072925f730c3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-02f0e90c-4dce-45a7-86c3-072925f730c3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-4fa30c48-6ad2-476e-98d3-83a299649115 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.test_acl.TestRBACScoped.test_rbac_legacy_046_nodes_states_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_046_nodes_states_get_observer ... ok ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_destroy_allocation_without_node ... 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.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.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.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_allocations.AllocationTestCase.test_resume_allocations ironic.tests.unit.conductor.test_allocations.AllocationTestCase.test_resume_allocations ... 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.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.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.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.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.TestRBACScopedRequests.test_system_scoped_053_nodes_states_boot_mode_put_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_053_nodes_states_boot_mode_put_member ... ok ironic.tests.unit.api.controllers.v1.test_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_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.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.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.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.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.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_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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c83047f7-a650-45fc-825f-4432c30c37a0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.24 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Operation not permitted.\", \"debuginfo\": null}"} GET: /v1/ports/detail?portgroup=6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T13:34:24.514936+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-74e5b369-45a4-478b-a241-9364f7c934de X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.14 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports?fields=uuid,extra {} GOT:{'ports': [{'uuid': '3bc78360-db42-4d0f-9b00-671aee021890', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/3bc78360-db42-4d0f-9b00-671aee021890', 'rel': 'self'}, {'href': 'http://localhost/ports/3bc78360-db42-4d0f-9b00-671aee021890', 'rel': 'bookmark'}]}, {'uuid': '0ab1b844-2c64-4feb-93b1-170b8174f5ff', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/0ab1b844-2c64-4feb-93b1-170b8174f5ff', 'rel': 'self'}, {'href': 'http://localhost/ports/0ab1b844-2c64-4feb-93b1-170b8174f5ff', 'rel': 'bookmark'}]}, {'uuid': '0e6a130f-c22d-46e6-81ed-29d3bf62ef4b', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/0e6a130f-c22d-46e6-81ed-29d3bf62ef4b', 'rel': 'self'}, {'href': 'http://localhost/ports/0e6a130f-c22d-46e6-81ed-29d3bf62ef4b', 'rel': 'bookmark'}]}]} GET: /v1/ports?fields=address&limit=2 {} GOT:{'ports': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/938d8498-b827-4b78-b369-1c7850274bfe', 'rel': 'self'}, {'href': 'http://localhost/ports/938d8498-b827-4b78-b369-1c7850274bfe', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/123f693b-cc4d-4b59-843d-a82160399ae6', 'rel': 'self'}, {'href': 'http://localhost/ports/123f693b-cc4d-4b59-843d-a82160399ae6', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=123f693b-cc4d-4b59-843d-a82160399ae6'} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,extra {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-0be5da6d-77e2-42f3-91e3-50be3eda53c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.1 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,spongebob {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ccdc79d3-8a0f-45e9-97aa-b992b5eb00a3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Field(s) \\\"spongebob\\\" are not valid\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,is_smartnic {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-769fee9c-5053-4de2-bb19-29c421cd01e5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.52 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,is_smartnic {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'is_smartnic': True, 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fa331009-adee-4cf2-a742-dbb205bb1611 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.33 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'physical_network': 'physnet1', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]} GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781?fields=uuid,physical_network {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-db0fbe12-d48a-4ee5-8058-73442f29323f 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-06T13:34:28.306468+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-06T13:34:28.846812+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-06T13:34:29.205728+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.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_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_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_is_smartnic ... ok ironic.tests.unit.api.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.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.TestListPorts.test_hide_fields_in_newer_versions_physical_network ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_hide_fields_in_newer_versions_physical_network ... ok ironic.tests.unit.api.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_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.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.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.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.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_port.TestListPorts.test_links ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_links ... ok ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4fa30c48-6ad2-476e-98d3-83a299649115 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eaba1fae-8c90-4184-9016-74b6f21e2060 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-eaba1fae-8c90-4184-9016-74b6f21e2060 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-9e7b436c-a206-48e0-b12a-79c15f0c9db1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9e7b436c-a206-48e0-b12a-79c15f0c9db1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b7f0e471-77bc-4b5d-afd1-3ab9d4ef6185 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b7f0e471-77bc-4b5d-afd1-3ab9d4ef6185 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/boot_mode {'target': 'uefi'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f281bdf5-f848-42da-8800-e61ef16413cc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-f281bdf5-f848-42da-8800-e61ef16413cc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-ea6d46c5-6093-42dc-8682-db36dc9fecd5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ea6d46c5-6093-42dc-8682-db36dc9fecd5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8b19f85e-84c0-4ef8-a1f3-e3bdcb0ef095 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8b19f85e-84c0-4ef8-a1f3-e3bdcb0ef095 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-65db9315-83b1-49c3-9eda-bf84bb059d94 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-65db9315-83b1-49c3-9eda-bf84bb059d94 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2040c61d-ec10-4c18-8a9c-b43493f22729 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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_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_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.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 GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2024-01-06T13:34:29.205728+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-06T13:34:29.631120+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-06T13:34:29.631120+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-06T13:34:29.974651+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-06T13:34:29.974651+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-06T13:34:30.316037+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-06T13:34:30.316037+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-06T13:34:30.733757+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-06T13:34:31.045134+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-06T13:34:31.045134+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/15a4f4f9-f86b-4072-806a-27664da59680 {} GOT:{'uuid': '15a4f4f9-f86b-4072-806a-27664da59680', 'created_at': '2024-01-06T13:34:31.495493+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/15a4f4f9-f86b-4072-806a-27664da59680', 'rel': 'self'}, {'href': 'http://localhost/ports/15a4f4f9-f86b-4072-806a-27664da59680', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/ports/15a4f4f9-f86b-4072-806a-27664da59680 {} GOT:{'uuid': '15a4f4f9-f86b-4072-806a-27664da59680', 'created_at': '2024-01-06T13:34:31.495493+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/15a4f4f9-f86b-4072-806a-27664da59680', 'rel': 'self'}, {'href': 'http://localhost/ports/15a4f4f9-f86b-4072-806a-27664da59680', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /ports/15a4f4f9-f86b-4072-806a-27664da59680 {} GOT:{'uuid': '15a4f4f9-f86b-4072-806a-27664da59680', 'created_at': '2024-01-06T13:34:31.495493+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/15a4f4f9-f86b-4072-806a-27664da59680', 'rel': 'self'}, {'href': 'http://localhost/ports/15a4f4f9-f86b-4072-806a-27664da59680', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/ports/ec76d85c-d2f4-450c-90d3-a1cacb519ec5 {} GOT:{'uuid': 'ec76d85c-d2f4-450c-90d3-a1cacb519ec5', 'created_at': '2024-01-06T13:34:31.936443+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://foo/v1/ports/ec76d85c-d2f4-450c-90d3-a1cacb519ec5', 'rel': 'self'}, {'href': 'http://foo/ports/ec76d85c-d2f4-450c-90d3-a1cacb519ec5', '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.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_port.TestListPorts.test_list_detailed_with_deleted_node ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_detailed_with_deleted_node ... ok ironic.tests.unit.api.test_acl.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.test_acl.TestRBACScopedRequests.test_system_scoped_060_nodes_states_provision_put_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_060_nodes_states_provision_put_reader ... ok ironic.tests.unit.conductor.test_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.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden_no_project ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_non_admin_forbidden_no_project ... ok ironic.tests.unit.api.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.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.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.TestListPorts.test_list_with_deleted_node ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_node ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_list_with_deleted_port_group ... ok ironic.tests.unit.api.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 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3a675bb8-a345-4662-b24c-f85b12796ad6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0993c7b9-983e-47c5-8525-64c3317c0344 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-875ad4f6-a228-4238-b3c6-1a874d6278d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-91a23533-20aa-4f31-a6c3-7f50c5482582 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-cfae56a0-e5e2-48ef-87df-7d2c8d8c1d64 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7a23a85b-e889-476b-b75e-1605d7f785f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e0ffd2ad-4a11-4e43-a347-3d953b05323d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-37eb7cb5-b5c1-4f79-977d-9772f39ab40b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-98f3b8de-4a08-4a92-8267-0ee077db408f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-de88ffaa-632d-4954-a304-9b97ea6e7603 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-29f84e1b-1e8b-43a3-8e1c-adcc6760dc43 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-2da725e8-5a15-45f9-8875-d9f077860823 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-6359d09a-9df2-4f9e-a139-d4a1c8cae165 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8d59b2a4-2581-4c80-8ba0-8e47e94ea3a1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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_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.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.api.controllers.v1.test_port.TestListPorts.test_many ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many ... 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.api.controllers.v1.test_port.TestListPorts.test_many_non_admin ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_many_non_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_063_nodes_states_raid_put_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_063_nodes_states_raid_put_reader ... ok ironic.tests.unit.conductor.test_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.controllers.v1.test_port.TestListPorts.test_one ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_one ... 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.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.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.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_invalid_address_format ... ok ironic.tests.unit.api.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.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.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.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.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin_no_match ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_admin_no_match ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_060_nodes_states_raid_put_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_060_nodes_states_raid_put_member ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_port_by_address_non_existent_address ... ok ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_invalid_ident ... ok ironic.tests.unit.api.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 ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2040c61d-ec10-4c18-8a9c-b43493f22729 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1a9c31fa-7bb7-4652-9e9a-d47f910748d7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1a9c31fa-7bb7-4652-9e9a-d47f910748d7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-611ac7ce-b272-4f0c-b255-6b7513228e19 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-611ac7ce-b272-4f0c-b255-6b7513228e19 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_provision_state\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c0489264-46cc-4cae-8f58-59711fc9bf12 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c0489264-46cc-4cae-8f58-59711fc9bf12 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1f9135f1-f500-44ce-b9d8-6c8177d4052d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1f9135f1-f500-44ce-b9d8-6c8177d4052d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d5a6e769-05d7-4fc1-815e-66e78e417b09 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-d5a6e769-05d7-4fc1-815e-66e78e417b09 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-18c39635-5778-4525-a2b8-e4e24814ce1f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-18c39635-5778-4525-a2b8-e4e24814ce1f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:get_console\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5e817688-ae94-4d27-b880-f3d77990d118 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5e817688-ae94-4d27-b880-f3d77990d118 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1b971b26-e6da-48e5-aeb1-e4cafc5b03ed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_portgroups_subresource_node_not_found ... ok ironic.tests.unit.conductor.test_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.TestListPorts.test_sort_key ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_067_nodes_states_console_put_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_067_nodes_states_console_put_member ... ok ironic.tests.unit.api.test_acl.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 GET: /v1/ports/ec76d85c-d2f4-450c-90d3-a1cacb519ec5 {} GOT:{'uuid': 'ec76d85c-d2f4-450c-90d3-a1cacb519ec5', 'created_at': '2024-01-06T13:34:31.936443+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://foo/v1/ports/ec76d85c-d2f4-450c-90d3-a1cacb519ec5', 'rel': 'self'}, {'href': 'http://foo/ports/ec76d85c-d2f4-450c-90d3-a1cacb519ec5', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /ports/ec76d85c-d2f4-450c-90d3-a1cacb519ec5 {} GOT:{'uuid': 'ec76d85c-d2f4-450c-90d3-a1cacb519ec5', 'created_at': '2024-01-06T13:34:31.936443+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://foo/v1/ports/ec76d85c-d2f4-450c-90d3-a1cacb519ec5', 'rel': 'self'}, {'href': 'http://foo/ports/ec76d85c-d2f4-450c-90d3-a1cacb519ec5', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GET: /v1/ports/detail {} GOT:{'ports': [{'uuid': '6adfd0b2-5dde-4d7d-be5a-a16932aea731', 'created_at': '2024-01-06T13:34:32.503142+00:00', 'updated_at': None, 'address': '66:44:55:33:11:22', 'extra': {}, 'links': [{'href': 'http://localhost/v1/ports/6adfd0b2-5dde-4d7d-be5a-a16932aea731', 'rel': 'self'}, {'href': 'http://localhost/ports/6adfd0b2-5dde-4d7d-be5a-a16932aea731', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'}]} GET: /v1/ports {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-dea8c3c6-2f54-4d15-97cb-1c425b0309fa X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-61efcf16-3bc7-48d4-9cb2-f2f93680c051 X-Openstack-Ironic-Api-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-06T13:34:33.993261+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': 'b5699c6f-9de2-4206-ba2c-c6f4f4bcd38a', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/b5699c6f-9de2-4206-ba2c-c6f4f4bcd38a', 'rel': 'self'}, {'href': 'http://localhost/ports/b5699c6f-9de2-4206-ba2c-c6f4f4bcd38a', 'rel': 'bookmark'}]}, {'uuid': '75ed46e8-cd77-48d9-971e-3a0c37e6216e', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/75ed46e8-cd77-48d9-971e-3a0c37e6216e', 'rel': 'self'}, {'href': 'http://localhost/ports/75ed46e8-cd77-48d9-971e-3a0c37e6216e', 'rel': 'bookmark'}]}, {'uuid': 'd0aae89d-adae-4976-8708-532b7046feb7', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/d0aae89d-adae-4976-8708-532b7046feb7', 'rel': 'self'}, {'href': 'http://localhost/ports/d0aae89d-adae-4976-8708-532b7046feb7', 'rel': 'bookmark'}]}, {'uuid': 'e464df94-a1b0-487d-8c27-882b2b236c2a', 'address': '52:54:00:cf:2d:33', 'links': [{'href': 'http://localhost/v1/ports/e464df94-a1b0-487d-8c27-882b2b236c2a', 'rel': 'self'}, {'href': 'http://localhost/ports/e464df94-a1b0-487d-8c27-882b2b236c2a', 'rel': 'bookmark'}]}, {'uuid': 'd5ff3066-478b-4a1f-ae41-f04366efda4b', 'address': '52:54:00:cf:2d:34', 'links': [{'href': 'http://localhost/v1/ports/d5ff3066-478b-4a1f-ae41-f04366efda4b', 'rel': 'self'}, {'href': 'http://localhost/ports/d5ff3066-478b-4a1f-ae41-f04366efda4b', 'rel': 'bookmark'}]}]} GET: /v1/ports {} GOT:{'ports': [{'uuid': '30deb699-4473-40b5-ad76-38e842b130f2', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/30deb699-4473-40b5-ad76-38e842b130f2', 'rel': 'self'}, {'href': 'http://localhost/ports/30deb699-4473-40b5-ad76-38e842b130f2', 'rel': 'bookmark'}]}, {'uuid': '15204224-d9da-48a4-a6e1-8a84596422ec', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/15204224-d9da-48a4-a6e1-8a84596422ec', 'rel': 'self'}, {'href': 'http://localhost/ports/15204224-d9da-48a4-a6e1-8a84596422ec', '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': '909dcc73-233d-42af-8e90-10fa409a07eb', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/909dcc73-233d-42af-8e90-10fa409a07eb', 'rel': 'self'}, {'href': 'http://localhost/ports/909dcc73-233d-42af-8e90-10fa409a07eb', 'rel': 'bookmark'}]}]} GET: /v1/ports?address=invalid-mac-format {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-6b8bd699-dfa5-4197-99c3-60f29280ad47 X-Openstack-Ironic-Api-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': '0c81f36c-c61b-42e7-821b-0eebe25b357b', 'address': 'aa:bb:cc:dd:ee:f1', 'links': [{'href': 'http://localhost/v1/ports/0c81f36c-c61b-42e7-821b-0eebe25b357b', 'rel': 'self'}, {'href': 'http://localhost/ports/0c81f36c-c61b-42e7-821b-0eebe25b357b', '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 {"error_message": "{\"code\": 400, \"title\": \"Bad Request\", \"description\": \"Expected UUID or name for portgroup: 123 123\"}"} GET: /v1/portgroups/eeeeeeee-cccc-aaaa-bbbb-cccccccccccc/ports {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/ports?sort_key=uuid {} GOT:{'ports': [{'uuid': '0ac4f1c2-529e-4e20-81eb-a54640cb36fa', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/0ac4f1c2-529e-4e20-81eb-a54640cb36fa', 'rel': 'self'}, {'href': 'http://localhost/ports/0ac4f1c2-529e-4e20-81eb-a54640cb36fa', 'rel': 'bookmark'}]}, {'uuid': '1d2e3857-9914-49d9-b44d-9fc0edb122da', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1d2e3857-9914-49d9-b44d-9fc0edb122da', 'rel': 'self'}, {'href': 'http://localhost/ports/1d2e3857-9914-49d9-b44d-9fc0edb122da', 'rel': 'bookmark'}]}, {'uuid': 'f2dc6643-2860-45cb-832b-322d8c85b062', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/ports/f2dc6643-2860-45cb-832b-322d8c85b062', 'rel': 'self'}, {'href': 'http://localhost/ports/f2dc6643-2860-45cb-832b-322d8c85b062', '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.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.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.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_port.TestListPorts.test_sort_key_invalid ... ok ironic.tests.unit.api.test_acl.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.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.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.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_collection_links ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.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.test_acl.TestRBACScopedRequests.test_system_scoped_071_nodes_vendor_passthru_methods_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_071_nodes_vendor_passthru_methods_get_reader ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail ... 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_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.TestRBACScoped.test_rbac_legacy_066_nodes_states_console_put_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_066_nodes_states_console_put_observer ... ok ironic.tests.unit.api.controllers.v1.test_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.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_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 GOT:{'ports': [{'uuid': 'efde33ce-1308-4e62-ac45-15c645d5ea54', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/efde33ce-1308-4e62-ac45-15c645d5ea54', 'rel': 'self'}, {'href': 'http://localhost/ports/efde33ce-1308-4e62-ac45-15c645d5ea54', 'rel': 'bookmark'}]}, {'uuid': '23601c96-7d69-4a76-83cc-b346c7e9963f', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/23601c96-7d69-4a76-83cc-b346c7e9963f', 'rel': 'self'}, {'href': 'http://localhost/ports/23601c96-7d69-4a76-83cc-b346c7e9963f', 'rel': 'bookmark'}]}]} GET: /v1/ports?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-9f838415-3070-4d6e-b7ae-efe67042ab8d X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-08eaddb9-8be2-49c1-b437-4e31fa4ece52 X-Openstack-Ironic-Api-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 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-635d9a14-68bf-4c44-97ff-c3f76cb0c790 X-Openstack-Ironic-Api-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 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-86460c8c-eb0b-4edd-9aa1-cda77fc15a04 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ed764f08-f14f-4efa-9582-2bb5f2fcc672 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.18 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Request not acceptable.\", \"debuginfo\": null}"} GET: /v1/portgroups/?limit=3 {} GOT:{'portgroups': [{'uuid': 'c8e3bbca-c224-4d37-a763-d4c5625bcc48', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/c8e3bbca-c224-4d37-a763-d4c5625bcc48', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c8e3bbca-c224-4d37-a763-d4c5625bcc48', 'rel': 'bookmark'}]}, {'uuid': '23520a91-bd78-4d7e-bc14-1e1efefd0164', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/23520a91-bd78-4d7e-bc14-1e1efefd0164', 'rel': 'self'}, {'href': 'http://localhost/portgroups/23520a91-bd78-4d7e-bc14-1e1efefd0164', 'rel': 'bookmark'}]}, {'uuid': 'defebda2-4e79-44dd-aec5-88c219737c08', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/defebda2-4e79-44dd-aec5-88c219737c08', 'rel': 'self'}, {'href': 'http://localhost/portgroups/defebda2-4e79-44dd-aec5-88c219737c08', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=defebda2-4e79-44dd-aec5-88c219737c08'} GET: /v1/portgroups?fields=address,uuid {} GOT:{'portgroups': [{'uuid': '110f34a0-c22c-4543-8621-fac0db62fb34', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/110f34a0-c22c-4543-8621-fac0db62fb34', 'rel': 'self'}, {'href': 'http://localhost/portgroups/110f34a0-c22c-4543-8621-fac0db62fb34', 'rel': 'bookmark'}]}, {'uuid': 'fed9c290-cf01-49af-8a70-952ad3c0a26f', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/fed9c290-cf01-49af-8a70-952ad3c0a26f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fed9c290-cf01-49af-8a70-952ad3c0a26f', 'rel': 'bookmark'}]}, {'uuid': '2ae4c4c7-c151-489d-98ee-18e981b86849', 'address': '52:54:00:cf:2d:32', 'links': [{'href': 'http://localhost/v1/portgroups/2ae4c4c7-c151-489d-98ee-18e981b86849', 'rel': 'self'}, {'href': 'http://localhost/portgroups/2ae4c4c7-c151-489d-98ee-18e981b86849', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address,uuid&limit=3&marker=2ae4c4c7-c151-489d-98ee-18e981b86849'} GET: /v1/portgroups {} GOT:{'portgroups': [{'uuid': '04e95dd4-73ef-4739-9d1a-6e50182b72e9', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/04e95dd4-73ef-4739-9d1a-6e50182b72e9', 'rel': 'self'}, {'href': 'http://localhost/portgroups/04e95dd4-73ef-4739-9d1a-6e50182b72e9', 'rel': 'bookmark'}]}, {'uuid': '5b9761a2-9d22-4734-a4b2-a1f05272ea77', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/5b9761a2-9d22-4734-a4b2-a1f05272ea77', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5b9761a2-9d22-4734-a4b2-a1f05272ea77', 'rel': 'bookmark'}]}, {'uuid': '558e8cda-ec95-4aee-be93-2cca13a68aaf', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/558e8cda-ec95-4aee-be93-2cca13a68aaf', 'rel': 'self'}, {'href': 'http://localhost/portgroups/558e8cda-ec95-4aee-be93-2cca13a68aaf', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=uuid,address,name&limit=3&marker=558e8cda-ec95-4aee-be93-2cca13a68aaf'} GET: /v1/portgroups/detail {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T13:34:40.236215+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9ccc0907-5f6b-4066-8d2d-27f9407d9e98 X-Openstack-Ironic-Api-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-06T13:34:40.918185+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/detail {} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_invalid_api_version ... ok ironic.tests.unit.api.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.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.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.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_in_background_task ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_exception_in_background_task ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_068_nodes_vendor_passthru_methods_get_member ... ok ironic.tests.unit.api.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.TestListPortgroups.test_detail_sort_key_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_sort_key_allowed ... 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_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_existing ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_existing ... ok ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1b971b26-e6da-48e5-aeb1-e4cafc5b03ed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-75f764e8-54d7-4fd2-b4d6-5154aeed4725 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-75f764e8-54d7-4fd2-b4d6-5154aeed4725 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0eb450d4-7650-4776-b96a-07c72202f2ec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-0eb450d4-7650-4776-b96a-07c72202f2ec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-85f60bb0-02ef-4b8f-962a-431deda9b77c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-85f60bb0-02ef-4b8f-962a-431deda9b77c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c2c0a39a-735a-4884-929e-cfa79f581168 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-c2c0a39a-735a-4884-929e-cfa79f581168 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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/methods GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6585b265-bc3a-481c-87b6-038b3989917f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-6585b265-bc3a-481c-87b6-038b3989917f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-84d4ab16-913a-4479-8dc0-2e9f46254a46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-84d4ab16-913a-4479-8dc0-2e9f46254a46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9943b595-0c7f-445d-b99d-d708ba196ae8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-9943b595-0c7f-445d-b99d-d708ba196ae8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1719c3fa-1cfb-4f77-b915-0b887430dff1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-693bbef1-3f62-46a6-b1a8-34b59c4e539c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-f6deb93e-ea7d-4884-b8af-e8111fabc27a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c6a6777c-2c44-4d19-9557-e43e6e78718a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ba41bbfd-73dd-4077-bb0e-59fb5cc00fb4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0f2624a8-6e75-4e3c-a1c6-eabadb2a0da4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-08f668b2-f5a4-4a21-bb42-4e91c408c138 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-e50b2de1-1574-42f9-a672-68cd82817b29 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-e28415bf-1856-4793-ba20-63eb7dd1eaf8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ffeecd15-9ec2-4d0b-a688-d367f43033f5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a9a534c0-98ee-4be2-b226-6df66b4ce770 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-bce56cb7-997d-4afc-9f28-1901c05791c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-32a34729-ffb9-48b5-b42a-3738b1cbbb14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-f2cc85ce-aa05-456d-82db-29fa290ec1c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-f1a5884d-9163-40b8-977b-cd6ba48655df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_070_nodes_vendor_passthru_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_070_nodes_vendor_passthru_get_admin ... ok ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_node_already_locked ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_node_already_locked ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_detail_using_query_false_and_fields ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_076_nodes_vendor_passthru_post_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_076_nodes_vendor_passthru_post_member ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.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.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_portgroup.TestListPortgroups.test_empty ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_empty ... ok ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_valid ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_valid ... ok ironic.tests.unit.api.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.api.test_acl.TestRBACScoped.test_rbac_legacy_072_nodes_vendor_passthru_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_072_nodes_vendor_passthru_get_observer ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_name_ok ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_all_by_node_uuid_ok ... ok ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_validate_fail ironic.tests.unit.conductor.test_manager.ChangeNodeSecureBootTestCase.test_change_node_secure_boot_validate_fail ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_078_nodes_vendor_passthru_put_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_078_nodes_vendor_passthru_put_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_073_nodes_vendor_passthru_post_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_073_nodes_vendor_passthru_post_admin ... ok ironic.tests.unit.api.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.TestRBACScopedRequests.test_system_scoped_079_nodes_vendor_passthru_put_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_079_nodes_vendor_passthru_put_member ... ok ironic.tests.unit.conductor.test_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 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-06T13:34:41.686433+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': '8345c0a4-516e-46d2-bc5b-17f355d12277', 'created_at': '2024-01-06T13:34:42.351948+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/8345c0a4-516e-46d2-bc5b-17f355d12277', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8345c0a4-516e-46d2-bc5b-17f355d12277', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/8345c0a4-516e-46d2-bc5b-17f355d12277/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/8345c0a4-516e-46d2-bc5b-17f355d12277/ports', 'rel': 'bookmark'}]}, {'uuid': '5a9eda66-37fe-4c9f-8d1a-93b0d224f2ff', 'created_at': '2024-01-06T13:34:42.347346+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/5a9eda66-37fe-4c9f-8d1a-93b0d224f2ff', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5a9eda66-37fe-4c9f-8d1a-93b0d224f2ff', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/5a9eda66-37fe-4c9f-8d1a-93b0d224f2ff/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5a9eda66-37fe-4c9f-8d1a-93b0d224f2ff/ports', 'rel': 'bookmark'}]}, {'uuid': '0f92ba3c-54f6-423f-b2f5-ba6597f0ab50', 'created_at': '2024-01-06T13:34:42.334733+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/0f92ba3c-54f6-423f-b2f5-ba6597f0ab50', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0f92ba3c-54f6-423f-b2f5-ba6597f0ab50', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/0f92ba3c-54f6-423f-b2f5-ba6597f0ab50/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0f92ba3c-54f6-423f-b2f5-ba6597f0ab50/ports', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/detail?sort_key=mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-fc41085a-85c9-4f95-95e8-17f731dd3aa1 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 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-d94b0a5a-401c-4550-b901-9cde64af1cd1 X-Openstack-Ironic-Api-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 {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-0c681517-5cf6-46b0-9312-6d4bf17a2dc6 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': '9c69c0b9-34aa-4815-83b9-3b35016fff0f', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/9c69c0b9-34aa-4815-83b9-3b35016fff0f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9c69c0b9-34aa-4815-83b9-3b35016fff0f', 'rel': 'bookmark'}]}, {'uuid': '1de8231f-a480-450f-92bc-d886f0203520', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/1de8231f-a480-450f-92bc-d886f0203520', 'rel': 'self'}, {'href': 'http://localhost/portgroups/1de8231f-a480-450f-92bc-d886f0203520', 'rel': 'bookmark'}]}, {'uuid': 'd00d6da9-6620-44cf-b1d0-4f70d796ecc1', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/d00d6da9-6620-44cf-b1d0-4f70d796ecc1', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d00d6da9-6620-44cf-b1d0-4f70d796ecc1', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/detail?node=1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:{'portgroups': [{'uuid': '6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'created_at': '2024-01-06T13:34:44.576832+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:{'ports': [{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?fields=uuid,extra {} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_collection_custom_fields ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_074_nodes_vendor_passthru_post_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_074_nodes_vendor_passthru_post_member ... ok ironic.tests.unit.api.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.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.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.test_acl.TestRBACScoped.test_rbac_legacy_075_nodes_vendor_passthru_post_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_075_nodes_vendor_passthru_post_observer ... ok ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy ... 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.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.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.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_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated ironic.tests.unit.conductor.test_manager.ContinueNodeDeployTestCase.test_continue_node_deploy_deprecated ... 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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1719c3fa-1cfb-4f77-b915-0b887430dff1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-156a88f3-d027-4af0-9ea0-8f4fd9d5e18c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-156a88f3-d027-4af0-9ea0-8f4fd9d5e18c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3506880b-f394-41c3-8cba-cfea4ffaad71 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-3506880b-f394-41c3-8cba-cfea4ffaad71 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ff9e7a48-bb01-4e2b-91cf-9bc8aeb0c85c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-ff9e7a48-bb01-4e2b-91cf-9bc8aeb0c85c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-00904ad4-ea8d-44fe-970c-2f674abe451b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-00904ad4-ea8d-44fe-970c-2f674abe451b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test None GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-947afd8d-38c8-450b-b698-e2056fb314eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-947afd8d-38c8-450b-b698-e2056fb314eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c33b0a27-ed79-44f4-a534-46e31e186998 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-c33b0a27-ed79-44f4-a534-46e31e186998 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-6ab73d00-00e9-4990-83f0-0e9689bef04b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6ab73d00-00e9-4990-83f0-0e9689bef04b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4b1842af-38dd-43af-acfa-46c7a28ce4e7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_invalid_api_version ... ok ironic.tests.unit.conductor.test_manager.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.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.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.test_acl.TestRBACScoped.test_rbac_legacy_078_nodes_vendor_passthru_put_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_078_nodes_vendor_passthru_put_observer ... ok ironic.tests.unit.api.controllers.v1.test_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.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.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.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_get_one_with_json_in_name ... ok ironic.tests.unit.conductor.test_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.TestRBACScopedRequests.test_system_scoped_085_nodes_traits_get_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_085_nodes_traits_get_member ... ok ironic.tests.unit.api.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.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.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.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:{'portgroups': [{'uuid': 'f78aa3ea-d1a9-4dc6-92ee-8db33a5c3044', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/f78aa3ea-d1a9-4dc6-92ee-8db33a5c3044', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f78aa3ea-d1a9-4dc6-92ee-8db33a5c3044', 'rel': 'bookmark'}]}, {'uuid': '5c39ead7-26ec-40d0-ba24-751c2b3038de', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/5c39ead7-26ec-40d0-ba24-751c2b3038de', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5c39ead7-26ec-40d0-ba24-751c2b3038de', 'rel': 'bookmark'}]}, {'uuid': '9ff11d07-0fef-4d09-894b-9e692cb78340', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/9ff11d07-0fef-4d09-894b-9e692cb78340', 'rel': 'self'}, {'href': 'http://localhost/portgroups/9ff11d07-0fef-4d09-894b-9e692cb78340', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?fields=address&limit=2 {} GOT:{'portgroups': [{'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/portgroups/e9cc9bbe-3e9f-4e1f-873a-a545f3770bbf', 'rel': 'self'}, {'href': 'http://localhost/portgroups/e9cc9bbe-3e9f-4e1f-873a-a545f3770bbf', 'rel': 'bookmark'}]}, {'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/portgroups/98ce84e9-3d7c-43b2-9abc-5437e02ad113', 'rel': 'self'}, {'href': 'http://localhost/portgroups/98ce84e9-3d7c-43b2-9abc-5437e02ad113', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/portgroups?sort_key=id&sort_dir=asc&fields=address&limit=2&marker=98ce84e9-3d7c-43b2-9abc-5437e02ad113'} GET: /v1/portgroups/?fields=address,properties {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-beaf640b-68f7-487c-a846-244590c3eebd 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-cb4486de-ef7a-4a59-ba9f-e1375b6e8ee6 X-Openstack-Ironic-Api-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-06T13:34:46.570896+00:00', 'updated_at': None, 'address': '52:54:00:cf:2d:31', 'extra': {}, 'internal_info': {'bar': 'buzz'}, 'mode': 'active-backup', 'name': 'fooname', 'properties': {}, 'standalone_ports_supported': True, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports', 'rel': 'bookmark'}]} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,extra {} GOT:{'address': '52:54:00:cf:2d:31', 'extra': {}, 'links': [{'href': 'http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'self'}, {'href': 'http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4', 'rel': 'bookmark'}]} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4?fields=address,mode {} GOT:Response: 406 Not Acceptable Content-Type: application/json Openstack-Request-Id: req-48cba79b-fbca-41b1-aad4-44f76a76b4b9 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-06T13:34:48.024703+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-06T13:34:48.442130+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-06T13:34:48.795081+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/d7bf2c46-15f6-47b6-a819-f8d503dd7a8e {} GOT:{'uuid': 'd7bf2c46-15f6-47b6-a819-f8d503dd7a8e', 'created_at': '2024-01-06T13:34:49.274690+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/d7bf2c46-15f6-47b6-a819-f8d503dd7a8e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d7bf2c46-15f6-47b6-a819-f8d503dd7a8e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/d7bf2c46-15f6-47b6-a819-f8d503dd7a8e/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d7bf2c46-15f6-47b6-a819-f8d503dd7a8e/ports', 'rel': 'bookmark'}]} GET: /v1/portgroups/d7bf2c46-15f6-47b6-a819-f8d503dd7a8e {} 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_manager.CreatePortTestCase.test_create_port ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port ... 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.api.controllers.v1.test_portgroup.TestListPortgroups.test_many ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_many ... 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.api.controllers.v1.test_portgroup.TestListPortgroups.test_one ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_one ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_082_nodes_traits_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_082_nodes_traits_get_admin ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address ... ok ironic.tests.unit.api.test_acl.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.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.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.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_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_portgroup_by_address_non_existent_address ... ok ironic.tests.unit.api.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.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.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 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-89bdd390-5cec-4951-ac03-c4b469a21d62 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-1ad2e436-7218-48ab-a8de-293f1eb5f7d2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-e856db92-200c-4b0a-935c-818d8d4958be X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c6845962-27be-4073-9500-70144a97e096 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ca94db36-da60-4189-be31-16e8eed97ce7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-37ee3e10-0cc2-4ef4-a529-759c19b442e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-7a66b26b-18a9-4272-af4f-bcedc792b14b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d471f23c-e798-475b-9d95-c1abaf11da30 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-44a59bbf-8fa2-4f55-9ddf-5d562d92bff0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-361b37e7-7540-4d3e-af87-21f119e09996 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-70b1d2ff-afa3-4ff0-aa24-e08ae99a2a01 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-cb33b1bd-f88b-4cf2-b808-c5a17c858b6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-47c9cc3f-4062-44be-afb8-35aef2db7fc5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-8204eb28-7386-436c-9361-3707b83a3eb6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_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.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_conflict ... ok ironic.tests.unit.api.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.api.test_acl.TestRBACScoped.test_rbac_legacy_085_nodes_traits_put_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_085_nodes_traits_put_admin ... ok ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent ironic.tests.unit.conductor.test_manager.CreatePortTestCase.test_create_port_physnet_validation_failure_inconsistent ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource ... 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.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 GOT:{'uuid': 'd7bf2c46-15f6-47b6-a819-f8d503dd7a8e', 'created_at': '2024-01-06T13:34:49.274690+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/d7bf2c46-15f6-47b6-a819-f8d503dd7a8e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d7bf2c46-15f6-47b6-a819-f8d503dd7a8e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/d7bf2c46-15f6-47b6-a819-f8d503dd7a8e/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d7bf2c46-15f6-47b6-a819-f8d503dd7a8e/ports', 'rel': 'bookmark'}]} GET: /portgroups/d7bf2c46-15f6-47b6-a819-f8d503dd7a8e {} GOT:{'uuid': 'd7bf2c46-15f6-47b6-a819-f8d503dd7a8e', 'created_at': '2024-01-06T13:34:49.274690+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/d7bf2c46-15f6-47b6-a819-f8d503dd7a8e', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d7bf2c46-15f6-47b6-a819-f8d503dd7a8e', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'ports': [{'href': 'http://localhost/v1/portgroups/d7bf2c46-15f6-47b6-a819-f8d503dd7a8e/ports', 'rel': 'self'}, {'href': 'http://localhost/portgroups/d7bf2c46-15f6-47b6-a819-f8d503dd7a8e/ports', 'rel': 'bookmark'}]} GET: /v1/portgroups {} GOT:{'portgroups': [{'uuid': 'fc0ecc09-f735-433f-9f9b-c36c9d7a685f', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/fc0ecc09-f735-433f-9f9b-c36c9d7a685f', 'rel': 'self'}, {'href': 'http://localhost/portgroups/fc0ecc09-f735-433f-9f9b-c36c9d7a685f', 'rel': 'bookmark'}]}, {'uuid': 'f85df587-4ea4-474b-af3b-29c7b72189b5', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/f85df587-4ea4-474b-af3b-29c7b72189b5', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f85df587-4ea4-474b-af3b-29c7b72189b5', 'rel': 'bookmark'}]}, {'uuid': '13064c7e-c7ad-402e-8605-a4edf2ab37df', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/13064c7e-c7ad-402e-8605-a4edf2ab37df', 'rel': 'self'}, {'href': 'http://localhost/portgroups/13064c7e-c7ad-402e-8605-a4edf2ab37df', 'rel': 'bookmark'}]}, {'uuid': '5a850d27-c058-426d-bda9-6e3c41de6c49', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/5a850d27-c058-426d-bda9-6e3c41de6c49', 'rel': 'self'}, {'href': 'http://localhost/portgroups/5a850d27-c058-426d-bda9-6e3c41de6c49', 'rel': 'bookmark'}]}, {'uuid': 'c0085dc6-93c9-4c6e-99e6-47c183d00901', 'address': '52:54:00:cf:2d:34', 'name': 'portgroup4', 'links': [{'href': 'http://localhost/v1/portgroups/c0085dc6-93c9-4c6e-99e6-47c183d00901', 'rel': 'self'}, {'href': 'http://localhost/portgroups/c0085dc6-93c9-4c6e-99e6-47c183d00901', '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': 'f9bb2e8e-3f36-4f7a-bcda-4b7cca4ff077', 'address': 'aa:bb:cc:dd:ee:f1', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/f9bb2e8e-3f36-4f7a-bcda-4b7cca4ff077', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f9bb2e8e-3f36-4f7a-bcda-4b7cca4ff077', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?address=invalid-mac-format {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-abc66b54-fb93-4eac-84f6-c3eee7e5d47e X-Openstack-Ironic-Api-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-03eb09ef-c056-42bb-b5fc-ff3758c0268b 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/7e736f12-bea9-43b5-acc9-3eb578248c0a/ports {} GOT:{'ports': [{'uuid': '4dde8b29-62b9-44d1-9269-b7443fceb225', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/4dde8b29-62b9-44d1-9269-b7443fceb225', 'rel': 'self'}, {'href': 'http://localhost/ports/4dde8b29-62b9-44d1-9269-b7443fceb225', 'rel': 'bookmark'}]}, {'uuid': 'abc3042d-4a83-4b99-8ac6-e8d457be7e81', 'address': '52:54:00:cf:2d:31', 'links': [{'href': 'http://localhost/v1/ports/abc3042d-4a83-4b99-8ac6-e8d457be7e81', 'rel': 'self'}, {'href': 'http://localhost/ports/abc3042d-4a83-4b99-8ac6-e8d457be7e81', 'rel': 'bookmark'}]}]} GET: /v1/portgroups/7e736f12-bea9-43b5-acc9-3eb578248c0a/ports/detail {} GOT:{'ports': [{'uuid': '4dde8b29-62b9-44d1-9269-b7443fceb225', 'created_at': '2024-01-06T13:34:51.905783+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/4dde8b29-62b9-44d1-9269-b7443fceb225', 'rel': 'self'}, {'href': 'http://localhost/ports/4dde8b29-62b9-44d1-9269-b7443fceb225', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '7e736f12-bea9-43b5-acc9-3eb578248c0a'}, {'uuid': 'abc3042d-4a83-4b99-8ac6-e8d457be7e81', 'created_at': '2024-01-06T13:34:51.919010+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/abc3042d-4a83-4b99-8ac6-e8d457be7e81', 'rel': 'self'}, {'href': 'http://localhost/ports/abc3042d-4a83-4b99-8ac6-e8d457be7e81', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'portgroup_uuid': '7e736f12-bea9-43b5-acc9-3eb578248c0a'}]} GET: /v1/portgroups/7e736f12-bea9-43b5-acc9-3eb578248c0a/ports?limit=1 {} GOT:{'ports': [{'uuid': '4dde8b29-62b9-44d1-9269-b7443fceb225', 'address': '52:54:00:cf:2d:30', 'links': [{'href': 'http://localhost/v1/ports/4dde8b29-62b9-44d1-9269-b7443fceb225', 'rel': 'self'}, {'href': 'http://localhost/ports/4dde8b29-62b9-44d1-9269-b7443fceb225', 'rel': 'bookmark'}]}], 'next': 'http://localhost/v1/ports?sort_key=id&sort_dir=asc&fields=uuid,address&limit=1&marker=4dde8b29-62b9-44d1-9269-b7443fceb225'} GET: /v1/portgroups/7e736f12-bea9-43b5-acc9-3eb578248c0a/ports/f782be12-dcad-462b-8046-2faa2372b24d {} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} GET: /v1/portgroups/7e736f12-bea9-43b5-acc9-3eb578248c0a/ports/6eb4aab6-507d-449a-aabb-dd83282d87f8 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-07a53502-a68c-4898-a65b-3acbe4a85f5d X-Openstack-Ironic-Api-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}"} ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_no_portgroups_allowed ... ok ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_ports_subresource_not_allowed ... ok ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4b1842af-38dd-43af-acfa-46c7a28ce4e7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-b53d23ee-b18b-4ca7-a212-4010259ebd06 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-b53d23ee-b18b-4ca7-a212-4010259ebd06 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-3d880440-e512-4f6b-aaed-0a2cc7ac66a2 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-3d880440-e512-4f6b-aaed-0a2cc7ac66a2 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 Content-Type: application/json Openstack-Request-Id: req-1a33dd5f-40d2-472d-9885-3e2706782abe 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-1a33dd5f-40d2-472d-9885-3e2706782abe 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 Content-Type: application/json Openstack-Request-Id: req-f0b07046-a330-4a18-8986-6988dfcf147b 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-f0b07046-a330-4a18-8986-6988dfcf147b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"traits": ["trait1"]} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0257364a-c329-4732-ab27-c99cf9cc599e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0257364a-c329-4732-ab27-c99cf9cc599e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-cb1dad27-fe18-4544-9eaf-3e1515e95805 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-cb1dad27-fe18-4544-9eaf-3e1515e95805 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-d995a930-8e87-4a0d-a355-c6052a810f3c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-d995a930-8e87-4a0d-a355-c6052a810f3c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2227075f-ab4b-4ea5-9d7c-22b686339e36 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2227075f-ab4b-4ea5-9d7c-22b686339e36 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-70b54f32-f2f9-4d3c-b7ba-3f547568af1a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test__do_adoption_boot_validate_failure ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_093_nodes_traits_trait_put_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_093_nodes_traits_trait_put_admin ... ok ironic.tests.unit.api.test_acl.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_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.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.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.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.TestRBACScoped.test_rbac_legacy_089_nodes_traits_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_089_nodes_traits_delete_member ... ok ironic.tests.unit.api.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_portgroup.TestListPortgroups.test_sort_key_invalid ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_invalid ... 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.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.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.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed ironic.tests.unit.api.controllers.v1.test_portgroup.TestListPortgroups.test_sort_key_not_allowed ... ok ironic.tests.unit.api.controllers.v1.test_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_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.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_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.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.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.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.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.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.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.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.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_verify_ca ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_ok_agent_verify_ca ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_097_nodes_traits_trait_delete_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_097_nodes_traits_trait_delete_member ... ok ironic.tests.unit.api.test_acl.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 GET: /v1/portgroups/5cfc7591-6f40-497c-bc46-df85685c6919/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-7f85b9a6-0064-445e-baec-4f587c0058ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup eeeeeeee-cccc-aaaa-bbbb-cccccccccccc could not be found.\", \"debuginfo\": null}"} GET: /v1/portgroups?sort_key=uuid {} GOT:{'portgroups': [{'uuid': '51c6f810-1f7b-4b3f-bdee-6351aacc9c28', 'address': '52:54:00:cf:2d:30', 'name': 'portgroup0', 'links': [{'href': 'http://localhost/v1/portgroups/51c6f810-1f7b-4b3f-bdee-6351aacc9c28', 'rel': 'self'}, {'href': 'http://localhost/portgroups/51c6f810-1f7b-4b3f-bdee-6351aacc9c28', 'rel': 'bookmark'}]}, {'uuid': '69ca3485-a16c-48eb-8bdc-d0cb3d7bf3ba', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/69ca3485-a16c-48eb-8bdc-d0cb3d7bf3ba', 'rel': 'self'}, {'href': 'http://localhost/portgroups/69ca3485-a16c-48eb-8bdc-d0cb3d7bf3ba', 'rel': 'bookmark'}]}, {'uuid': 'bd4554aa-4be9-4beb-ab9e-a3274dc30941', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/bd4554aa-4be9-4beb-ab9e-a3274dc30941', 'rel': 'self'}, {'href': 'http://localhost/portgroups/bd4554aa-4be9-4beb-ab9e-a3274dc30941', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?sort_key=mode {} GOT:{'portgroups': [{'uuid': '4db4d97d-be69-4152-8181-a87f1318663d', 'address': '52:54:00:cf:2d:31', 'name': 'portgroup1', 'links': [{'href': 'http://localhost/v1/portgroups/4db4d97d-be69-4152-8181-a87f1318663d', 'rel': 'self'}, {'href': 'http://localhost/portgroups/4db4d97d-be69-4152-8181-a87f1318663d', 'rel': 'bookmark'}]}, {'uuid': 'f0455c2f-1f35-4f62-9fd3-64d36e83b21c', 'address': '52:54:00:cf:2d:32', 'name': 'portgroup2', 'links': [{'href': 'http://localhost/v1/portgroups/f0455c2f-1f35-4f62-9fd3-64d36e83b21c', 'rel': 'self'}, {'href': 'http://localhost/portgroups/f0455c2f-1f35-4f62-9fd3-64d36e83b21c', 'rel': 'bookmark'}]}, {'uuid': '0c51703f-3d80-479f-9c51-e58485b4c3a0', 'address': '52:54:00:cf:2d:33', 'name': 'portgroup3', 'links': [{'href': 'http://localhost/v1/portgroups/0c51703f-3d80-479f-9c51-e58485b4c3a0', 'rel': 'self'}, {'href': 'http://localhost/portgroups/0c51703f-3d80-479f-9c51-e58485b4c3a0', 'rel': 'bookmark'}]}]} GET: /v1/portgroups?sort_key=foo {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-b8fd0531-e37e-43ab-8227-99872caeee58 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"The sort_key value \\\"foo\\\" is an invalid field for sorting\", \"debuginfo\": null}"} GET: /v1/portgroups?sort_key=extra {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-fdc7d7db-7a2a-4acb-bb04-114185bb692f X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-58c10588-3f9d-46f3-a10e-b4d06a83b374 X-Openstack-Ironic-Api-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-03fc08fd-f6b9-4e37-882f-07e17e32f346 X-Openstack-Ironic-Api-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-0e3ffda7-2a87-4900-90d1-7a0c998bf397 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/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-60211cd1-5eea-48c4-9374-0329e9f6434f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Agent status is invalid. Valid states are start,end,error.\", \"debuginfo\": null}"} POST: /v1/heartbeat/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {'callback_url': 'url2'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-ebc20c4d-ebcf-4201-ba34-7c4e5ecb51a0 X-Openstack-Ironic-Api-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/6e7490e1-e5f9-47c8-aa61-1517cd81c427 {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-aadf3177-6f3a-4d44-a30e-1b8965ab550d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 6e7490e1-e5f9-47c8-aa61-1517cd81c427 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-880ff708-564c-44b3-9d1a-06f1732fa4c9 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-dff2ee76-3770-4256-a381-e5bacf22a34c 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-43f1e0c3-8416-4cc6-b106-eb1122dc6d3a 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-6f2a9689-aba7-4a6a-adb5-ea1eff97475c 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'} 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.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.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.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.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.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.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.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_API_agent_version_error ... ok ironic.tests.unit.api.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 ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-70b54f32-f2f9-4d3c-b7ba-3f547568af1a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-74bc06c0-611f-4aae-9529-d0e1ab6124f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-74bc06c0-611f-4aae-9529-d0e1ab6124f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4d34610a-cb37-4fae-9fff-694026305d45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4d34610a-cb37-4fae-9fff-694026305d45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2055cf72-bc27-483d-926a-537e5b41a485 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2055cf72-bc27-483d-926a-537e5b41a485 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b1df057e-ba9e-4d42-a56e-959d74de79c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-b1df057e-ba9e-4d42-a56e-959d74de79c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7f5750dd-bff0-4497-975e-926b302bfe3a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7f5750dd-bff0-4497-975e-926b302bfe3a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d3c1f479-72f4-449d-b3f0-ccc2ff6d54ca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d3c1f479-72f4-449d-b3f0-ccc2ff6d54ca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ec798a25-6a0b-4b60-9a4b-e2c499066655 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-ec798a25-6a0b-4b60-9a4b-e2c499066655 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-eb714a62-ebb3-497c-8130-485f27d1c5f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_agent_status_error ironic.tests.unit.api.controllers.v1.test_ramdisk.TestHeartbeatScopedRBAC.test_old_api_agent_status_error ... ok ironic.tests.unit.api.test_acl.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.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.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_manager.DoNodeAdoptionTestCase.test_heartbeat_invalid_agent_token_older_version ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_invalid_agent_token_older_version ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_fast_deploy_lookup ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_101_nodes_vifs_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_101_nodes_vifs_get_reader ... ok ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses ironic.tests.unit.api.controllers.v1.test_ramdisk.TestLookup.test_found_by_addresses ... ok 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-cba5dd00-000f-4412-b07e-a52b059e271a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-de4c0a53-9acf-4b1f-a1d9-a952282efd83 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1ebc238a-244d-43c8-830c-d4982c5ecb65 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-3fc53fb2-de36-415d-8539-cd3b9fc2723b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-097a6871-a08b-4426-a721-6551a444bd0e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c02a03d4-a76f-49a7-8f60-30b76de870e7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-2c46d226-e4ed-4785-b43b-31f1b7d8b20a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-6d7a4193-e9be-4234-8499-6b6456f17577 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-77bde2d5-f1dd-4755-9ae9-c0911acb1f45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-cfc7b579-c3c3-41c5-a767-090807a0817c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-43e63ab0-0d6e-4d82-8e2d-2c3f924be405 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ad77d326-b576-434f-9282-0cf8c668a3ed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c8d840cd-c690-431e-aef1-c5ced60c63c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-1cfdad21-0626-492c-8f83-cac5a663ed0f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 {} 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.DoNodeAdoptionTestCase.test_heartbeat_invalid_newer_version ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_invalid_newer_version ... 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.test_acl.TestRBACScopedRequests.test_system_scoped_102_nodes_vifs_post_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_102_nodes_vifs_post_admin ... ok ironic.tests.unit.api.test_acl.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 GOT:Response: 202 Accepted Openstack-Request-Id: req-b51ab4a5-71f5-437c-a438-2db2fac2b4df 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-ac003083-4775-4857-8de7-3b9e5870b599 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-83d97f55-3e4c-4aa0-b623-45d9adc8118c 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-6b8e4da2-fd03-4018-b356-9886959ab37e 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-dfcb0efc-9ece-4579-a2d9-c6a8e6042937 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-2e9c19b9-b96c-4eca-90b2-ec4db19798b0 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/20010f47-3bca-444a-a75a-174db67f1a6c {'callback_url': 'url'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-adc21bd6-df07-4cd9-8b74-1e49ac6c6c6d X-Openstack-Ironic-Api-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=01f43399-f19c-461b-8711-c00dd0c8454f {} GOT:{'node': {'uuid': '01f43399-f19c-461b-8711-c00dd0c8454f', '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/01f43399-f19c-461b-8711-c00dd0c8454f', 'rel': 'self'}, {'href': 'http://localhost/nodes/01f43399-f19c-461b-8711-c00dd0c8454f', '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=01f43399-f19c-461b-8711-c00dd0c8454f {} GOT:{'node': {'uuid': '01f43399-f19c-461b-8711-c00dd0c8454f', '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/01f43399-f19c-461b-8711-c00dd0c8454f', 'rel': 'self'}, {'href': 'http://localhost/nodes/01f43399-f19c-461b-8711-c00dd0c8454f', '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=01f43399-f19c-461b-8711-c00dd0c8454f {} GOT:{'node': {'uuid': '01f43399-f19c-461b-8711-c00dd0c8454f', '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/01f43399-f19c-461b-8711-c00dd0c8454f', 'rel': 'self'}, {'href': 'http://localhost/nodes/01f43399-f19c-461b-8711-c00dd0c8454f', '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': '3025f03c-d283-4c1e-9073-27c31e6ede27', '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/3025f03c-d283-4c1e-9073-27c31e6ede27', 'rel': 'self'}, {'href': 'http://localhost/nodes/3025f03c-d283-4c1e-9073-27c31e6ede27', '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=74496f3e-fac7-4f71-9968-96e6eafa8063 {} GOT:{'node': {'uuid': '74496f3e-fac7-4f71-9968-96e6eafa8063', '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/74496f3e-fac7-4f71-9968-96e6eafa8063', 'rel': 'self'}, {'href': 'http://localhost/nodes/74496f3e-fac7-4f71-9968-96e6eafa8063', '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=cc1b7664-e5bc-4421-8aeb-b6ee9a03c8ff {} 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.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_tls_required ironic.tests.unit.conductor.test_manager.DoNodeAdoptionTestCase.test_heartbeat_tls_required ... 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.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.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.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.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.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.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.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.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.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.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.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_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_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.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.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok ironic.tests.unit.api.controllers.v1.test_root.TestCheckVersions.test_check_version_ok ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_103_nodes_vifs_node_vif_ident_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_103_nodes_vifs_node_vif_ident_delete_admin ... ok ironic.tests.unit.api.controllers.v1.test_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.TestRBACScopedRequests.test_system_scoped_106_nodes_vifs_node_vif_ident_delete_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_106_nodes_vifs_node_vif_ident_delete_member ... ok ironic.tests.unit.api.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_utils.TestApiUtils.test_apply_jsonpatch ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch ... 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.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.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 ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-eb714a62-ebb3-497c-8130-485f27d1c5f1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-191e406b-0fd7-4404-ad4b-1b73a264e142 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-191e406b-0fd7-4404-ad4b-1b73a264e142 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5df2be1f-32b4-4cd1-b3af-035a54da5463 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5df2be1f-32b4-4cd1-b3af-035a54da5463 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f6fd81ef-6672-41c5-87d4-2fad6ab68cb0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f6fd81ef-6672-41c5-87d4-2fad6ab68cb0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8f39ed29-92eb-4709-a3a9-2577c5a89665 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8f39ed29-92eb-4709-a3a9-2577c5a89665 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-98fd57da-0098-41f0-bae4-57a456358f8d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-98fd57da-0098-41f0-bae4-57a456358f8d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-3809c08b-2096-4fed-be12-09b979bf4c40 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3809c08b-2096-4fed-be12-09b979bf4c40 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5d100d99-f621-4682-b7aa-e61216cb683e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5d100d99-f621-4682-b7aa-e61216cb683e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ce21dc17-345a-4a93-bd93-c7a4d5a99c30 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_remove_non_existent ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_apply_jsonpatch_replace_non_existent_list_item ... ok ironic.tests.unit.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.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_observer ... ok ironic.tests.unit.api.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.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_check_for_invalid_fields_fail ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_multiple_success ... ok ironic.tests.unit.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.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.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.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.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.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_utils.TestApiUtils.test_get_patch_values_success ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_get_patch_values_success ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_replace ... ok ironic.tests.unit.api.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.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_similar_subpath ... ok ironic.tests.unit.conductor.test_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.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_is_path_removed_subpath_success ... ok ironic.tests.unit.api.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_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_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.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_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.test_acl.TestRBACScoped.test_rbac_legacy_108_nodes_management_indicators_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_108_nodes_management_indicators_get_observer ... ok ironic.tests.unit.conductor.test_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.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_112_portgroups_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_112_portgroups_get_admin ... 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.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.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_fields ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patch_validate_allowed_fields ... ok ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patched_validate_with_schema ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_patched_validate_with_schema ... ok ironic.tests.unit.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_utils.TestApiUtils.test_sanitize_dict ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_sanitize_dict ... 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.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.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.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir ironic.tests.unit.api.controllers.v1.test_utils.TestApiUtils.test_validate_sort_dir ... ok ironic.tests.unit.api.controllers.v1.test_utils.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.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.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_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.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes ... 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_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port ironic.tests.unit.api.controllers.v1.test_utils.TestCheckPortPolicyAndRetrieve.test_check_port_policy_and_retrieve_no_port ... ok ironic.tests.unit.api.test_acl.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.api.test_acl.TestRBACScoped.test_rbac_legacy_112_portgroups_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_112_portgroups_get_admin ... ok ironic.tests.unit.api.controllers.v1.test_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_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_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.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.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings ironic.tests.unit.api.controllers.v1.test_versions.TestMaxVersionString.test_max_version_not_pinned_in_release_mappings ... ok ironic.tests.unit.api.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.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.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.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.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.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.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.test_acl.TestRBACScopedRequests.test_system_scoped_117_portgroups_post_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_117_portgroups_post_reader ... ok ironic.tests.unit.api.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.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance ironic.tests.unit.conductor.test_manager.ManagerCheckOrphanNodesTestCase.test__check_orphan_nodes_maintenance ... ok GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fbffd254-1a11-427e-badf-fa14ea0a6a53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-b948d45f-4ff6-49dc-ba01-8f64c2533c11 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-26dd4e82-38c8-4a3e-8a96-f526de921cb3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0f510353-ff42-4c8f-94d6-6077bad34206 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a68d8d71-0531-43c4-a2d3-9a85945e020e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-10d7643f-1c7a-4006-babe-36a08874a1b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-feb6eb35-0747-4a73-a31d-a56f182170fa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-68cd0186-baa2-455f-a467-b0e02a4798bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-94ad9335-6de9-47a8-bd0f-0aebac7b03ce X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-8a312cc8-56a7-49b1-9c4a-1935c1c718a3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-314aba2e-0ab9-4778-9a35-1a19aff963aa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-be145547-709d-41b6-9a40-85d824951b98 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-de82fcb3-ea77-4c35-96ad-7e526e081da0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a034f218-2103-4a06-861c-22d299cb1035 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'} 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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ce21dc17-345a-4a93-bd93-c7a4d5a99c30 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} API ACL Testing Path get /v1/portgroups GET: /v1/portgroups {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d2417068-e62e-4552-8618-b1640e0a9983 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-d2417068-e62e-4552-8618-b1640e0a9983 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/portgroups GET: /v1/portgroups {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-11302193-8cc9-42bd-bdf9-4b3738641658 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-11302193-8cc9-42bd-bdf9-4b3738641658 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/portgroups GET: /v1/portgroups {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-20818574-3eab-4216-95cb-cde29012066a 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-20818574-3eab-4216-95cb-cde29012066a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} API ACL Testing Path post /v1/portgroups POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/4312e40e-94dc-487a-99eb-538fce0f5acd Openstack-Request-Id: req-fe840eeb-66e5-42ce-bbb0-a3699c767200 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "4312e40e-94dc-487a-99eb-538fce0f5acd", "created_at": "2024-01-06T13:35:10.639954+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/4312e40e-94dc-487a-99eb-538fce0f5acd", "rel": "self"}, {"href": "http://localhost/portgroups/4312e40e-94dc-487a-99eb-538fce0f5acd", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/4312e40e-94dc-487a-99eb-538fce0f5acd/ports", "rel": "self"}, {"href": "http://localhost/portgroups/4312e40e-94dc-487a-99eb-538fce0f5acd/ports", "rel": "bookmark"}]} ACL Test GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/4312e40e-94dc-487a-99eb-538fce0f5acd Openstack-Request-Id: req-fe840eeb-66e5-42ce-bbb0-a3699c767200 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "4312e40e-94dc-487a-99eb-538fce0f5acd", "created_at": "2024-01-06T13:35:10.639954+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/4312e40e-94dc-487a-99eb-538fce0f5acd", "rel": "self"}, {"href": "http://localhost/portgroups/4312e40e-94dc-487a-99eb-538fce0f5acd", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/4312e40e-94dc-487a-99eb-538fce0f5acd/ports", "rel": "self"}, {"href": "http://localhost/portgroups/4312e40e-94dc-487a-99eb-538fce0f5acd/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-251702c3-622b-4f66-b7e0-ef0827d28888 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-251702c3-622b-4f66-b7e0-ef0827d28888 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-80260c36-2343-4d7d-9db3-913b50845dba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-80260c36-2343-4d7d-9db3-913b50845dba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.TestRBACScopedRequests.test_system_scoped_118_portgroups_detail_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_118_portgroups_detail_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_116_portgroups_post_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_116_portgroups_post_member ... ok GOT:{'node': {'uuid': 'cc1b7664-e5bc-4421-8aeb-b6ee9a03c8ff', '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/cc1b7664-e5bc-4421-8aeb-b6ee9a03c8ff', 'rel': 'self'}, {'href': 'http://localhost/nodes/cc1b7664-e5bc-4421-8aeb-b6ee9a03c8ff', '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': '102c9466-4de1-4fc7-baf8-6fe46edbb44a', '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/102c9466-4de1-4fc7-baf8-6fe46edbb44a', 'rel': 'self'}, {'href': 'http://localhost/nodes/102c9466-4de1-4fc7-baf8-6fe46edbb44a', '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=5ba4a998-2be1-4a15-9705-8137024afaba {} GOT:{'node': {'uuid': '5ba4a998-2be1-4a15-9705-8137024afaba', '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/5ba4a998-2be1-4a15-9705-8137024afaba', 'rel': 'self'}, {'href': 'http://localhost/nodes/5ba4a998-2be1-4a15-9705-8137024afaba', '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-e5a80bda-1ff1-4b15-ac6b-b9243eba9580 X-Openstack-Ironic-Api-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-ac44c93b-9b84-4fbc-8e5d-dc6ec35f8cba X-Openstack-Ironic-Api-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-6b8e1de5-1d90-416c-9402-356d312867b2 X-Openstack-Ironic-Api-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=8d08c23f-8ec5-4dc7-b255-7f91b85e781b {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-be8957df-4dc9-49a4-8f3f-f3111204b769 X-Openstack-Ironic-Api-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/ {} 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-228f1304-0a30-422d-aa19-878b1b9e7200 X-Openstack-Ironic-Api-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/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-8b5f0b24-705c-4122-a9f2-75a1ca51ba71 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "created_at": "2000-01-01T00:00:00+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} GOT:{'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'created_at': '2000-01-01T00:00:00+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {'foo': 123}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} 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_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.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.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.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.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.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.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.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_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.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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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.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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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 " API ACL Testing Path get /v1/portgroups/detail GET: /v1/portgroups/detail {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3837c7f2-cfd2-488f-9a0d-c1accf24f0f3 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-06T13:35:12.516822+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-3837c7f2-cfd2-488f-9a0d-c1accf24f0f3 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-06T13:35:12.516822+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-51cd1f3d-55e1-47bd-9eff-acf03d88227b 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-06T13:35:13.161256+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-51cd1f3d-55e1-47bd-9eff-acf03d88227b 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-06T13:35:13.161256+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-8e31dede-b191-49e5-aa48-bc861d71c829 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-06T13:35:13.860737+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-8e31dede-b191-49e5-aa48-bc861d71c829 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-06T13:35:13.860737+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-482c1df0-c876-469d-8173-877d1333684b 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-06T13:35:14.518853+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.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.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/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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.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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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_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.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.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 " 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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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.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_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_max_retries_exceeded ... 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.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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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 GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 Openstack-Request-Id: req-664c1628-6785-4042-8989-d3c33ae18109 X-Openstack-Ironic-Api-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-06T13:35:12.876086+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-06T13:35:12.876086+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-09bcc430-9779-4668-b42e-0c7a632ab62c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/a00a1f1f-1cfd-450f-8692-a2fd096f5346 Openstack-Request-Id: req-4b9197be-cfeb-4177-a68a-3d6a128d6150 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "a00a1f1f-1cfd-450f-8692-a2fd096f5346", "created_at": "2024-01-06T13:35:13.835197+00:00", "updated_at": null, "connector_id": "iqn.2012-06.com.example:initiator", "extra": {}, "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/a00a1f1f-1cfd-450f-8692-a2fd096f5346", "rel": "self"}, {"href": "http://localhost/volume/connectors/a00a1f1f-1cfd-450f-8692-a2fd096f5346", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} GET: /v1/volume/connectors/a00a1f1f-1cfd-450f-8692-a2fd096f5346 {} GOT:{'uuid': 'a00a1f1f-1cfd-450f-8692-a2fd096f5346', 'created_at': '2024-01-06T13:35:13.835197+00:00', 'updated_at': None, 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'type': 'iqn', 'links': [{'href': 'http://localhost/v1/volume/connectors/a00a1f1f-1cfd-450f-8692-a2fd096f5346', 'rel': 'self'}, {'href': 'http://localhost/volume/connectors/a00a1f1f-1cfd-450f-8692-a2fd096f5346', 'rel': 'bookmark'}], 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 404 Not Found Content-Type: application/json {"error_message": "{\"code\": 404, \"title\": \"Not Found\", \"description\": \"\"}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}, 'node_uuid': 123} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-96c2eb22-3fb8-464d-bcb3-039959983c23 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 123 is not of type 'string'\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'extra': {}, 'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123'} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a62f40b3-09ba-48c9-9a9a-aec20e3f7830 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Schema error for connector: 'connector_id' is a required property\", \"debuginfo\": null}"} POST: /v1/volume/connectors {'uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c781', 'type': 'iqn', 'connector_id': 'iqn.2012-06.com.example:initiator', 'extra': {}} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-554205c4-0894-4aa6-8dbc-f3ffb3eab054 X-Openstack-Ironic-Api-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-e73a86fc-5c6a-4c89-9be8-366b5e6266b8 X-Openstack-Ironic-Api-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-6ff8e3d3-27cf-4cc1-aacb-d1b87fdaa84d X-Openstack-Ironic-Api-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-4bfd6ca2-16d5-40e2-9f20-beeaae3c5854 X-Openstack-Ironic-Api-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-06T13:35:16.186719+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': '9e822f94-43db-43d9-b182-34193eededc8', '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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_121_portgroups_portgroup_ident_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_121_portgroups_portgroup_ident_get_admin ... ok ironic.tests.unit.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.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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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 ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_122_portgroups_portgroup_ident_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_122_portgroups_portgroup_ident_get_member ... ok ironic.tests.unit.api.controllers.v1.test_volume_connector.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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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 " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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_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.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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_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_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.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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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 " 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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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_124_portgroups_portgroup_ident_patch_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_124_portgroups_portgroup_ident_patch_admin ... 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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-482c1df0-c876-469d-8173-877d1333684b 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-06T13:35:14.518853+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-f5ab1524-d8ad-4437-9424-5fa6ba900337 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-06T13:35:15.327788+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-f5ab1524-d8ad-4437-9424-5fa6ba900337 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-06T13:35:15.327788+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-53d6051f-fcfe-4df9-9ba8-665206f004a9 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-06T13:35:15.962268+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-53d6051f-fcfe-4df9-9ba8-665206f004a9 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-06T13:35:15.962268+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-474a80e3-7f93-4078-a62c-9552e88abdeb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-474a80e3-7f93-4078-a62c-9552e88abdeb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6c64bcd9-471b-43a4-8f30-c9c69b8e1f69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6c64bcd9-471b-43a4-8f30-c9c69b8e1f69 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-825b1def-08fe-4e08-8fdc-73a6fa3c0c14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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.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.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_notify ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_no_sync_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 " 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.ManagerDoSyncPowerStateTestCase.test_state_changed_sync ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_state_changed_sync ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_128_portgroups_portgroup_ident_delete_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_128_portgroups_portgroup_ident_delete_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.TestRBACScoped.test_rbac_legacy_126_portgroups_portgroup_ident_patch_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_126_portgroups_portgroup_ident_patch_observer ... ok ironic.tests.unit.conductor.test_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 " 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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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.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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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.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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " GOT:Response: 409 Conflict Content-Type: application/json Openstack-Request-Id: req-56821736-36f4-41d3-b844-0a82fa3ee797 X-Openstack-Ironic-Api-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-97413848-e2cd-4e16-a064-f452b7ca5010 X-Openstack-Ironic-Api-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-06T13:35:16.749034+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-06T13:35:16.749034+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-1ae44d69-283d-4d8c-b777-a8cac3741f96 X-Openstack-Ironic-Api-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-06T13:35:17.145548+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"} DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 204 No Content Openstack-Request-Id: req-e0bb805d-050a-445e-9e00-55e26beaf093 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 GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-2e3c8e3d-a5a5-416a-8893-01e42c73b57c X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-dc16f263-17b5-4bd7-a49f-87fa020c7f88 X-Openstack-Ironic-Api-Maximum-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 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-c56363b3-bc7f-4fcb-8c9b-5fab033979d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-c56363b3-bc7f-4fcb-8c9b-5fab033979d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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.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.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.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.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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.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 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 /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_vendor_detection ironic.tests.unit.conductor.test_manager.ManagerDoSyncPowerStateTestCase.test_vendor_detection ... 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.TestRBACBasic.test_basic_5_public_api ironic.tests.unit.api.test_acl.TestRBACBasic.test_basic_5_public_api ... 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.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.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.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_disappears_on_acquire ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5e8ed86c-dd96-4364-8790-0811cead9700 X-Openstack-Ironic-Api-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-06T13:35:19.950172+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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-5e8ed86c-dd96-4364-8790-0811cead9700 X-Openstack-Ironic-Api-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-06T13:35:19.950172+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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-698b693f-3357-4121-b579-3946866f406f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-698b693f-3357-4121-b579-3946866f406f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 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-f0b51fb2-f982-4fa2-9990-6cd97409c8e9 {"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-f0b51fb2-f982-4fa2-9990-6cd97409c8e9 {"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.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_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_in_enroll_on_acquire ... ok GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4a57e9e9-5c15-4adc-aa1e-563e4fcc3803 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ea6ffe36-79ac-4547-906c-ef7ddb9dcfb5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-12b698a1-f257-4ca3-9564-3c6c873e3dc1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8fec24e7-767c-442d-ad2e-89bec6dddd3e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-f6eff271-c27c-4561-829d-e27d5270e64f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ed6e7cfc-602d-4810-b66d-b17215d20f02 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-d308e6f5-5824-435d-b84b-ce0caecacefa X-Openstack-Ironic-Api-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-4ac01548-ef3c-42c4-a7f6-2e9d3e4fa612 X-Openstack-Ironic-Api-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-dd2a8da3-a3ee-4fcb-b33d-5a3566dc7737 X-Openstack-Ironic-Api-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-74cd9b12-075a-4446-95da-8e1ee69248af X-Openstack-Ironic-Api-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-79504e20-d840-4aa3-bed1-a49d151effb0 X-Openstack-Ironic-Api-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-07e729ba-03be-4b1a-9818-a0b9e670bc23 X-Openstack-Ironic-Api-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-2c298cbf-a6ed-43f6-ac7e-a4faf2373e10 X-Openstack-Ironic-Api-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-06b1f75b-2d9a-4ed5-8887-c1644810cef7 X-Openstack-Ironic-Api-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-6a45b1d7-bd06-4f23-a9b3-25bc069a0a08 X-Openstack-Ironic-Api-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 {} 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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1d370d62-1ee3-4dd3-be07-78bb0f71f5f2 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-1d370d62-1ee3-4dd3-be07-78bb0f71f5f2 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 Content-Type: application/json Openstack-Request-Id: req-a820169d-400b-4c65-97e6-c23bff0b97b9 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.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.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_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.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.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.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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-825b1def-08fe-4e08-8fdc-73a6fa3c0c14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0ec2ef9e-583a-4385-8719-a2af8f04153e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0ec2ef9e-583a-4385-8719-a2af8f04153e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-9c1b16da-03ae-4fac-9383-7fde78f7045f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-9c1b16da-03ae-4fac-9383-7fde78f7045f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-56b1aed7-cb0a-4bd9-ac6b-12a1ea66bf14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-56b1aed7-cb0a-4bd9-ac6b-12a1ea66bf14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a94ad36e-46ef-44ec-8f03-1629b4590996 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-a94ad36e-46ef-44ec-8f03-1629b4590996 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-074a8f3a-4d64-451c-90fe-ac811c996fc7 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-074a8f3a-4d64-451c-90fe-ac811c996fc7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-09d3b05b-1ca2-48df-a35c-4b96f2ce9538 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-09d3b05b-1ca2-48df-a35c-4b96f2ce9538 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.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_not_mapped ... 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.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.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.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success ironic.tests.unit.conductor.test_manager.ManagerPowerRecoveryTestCase.test_node_recovery_success ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_001_values ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_001_values ... skipped 'These are fake reference values for YAML templating' ironic.tests.unit.api.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.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_already_mapped ... 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_manager.ManagerSyncLocalStateTestCase.test_good ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_good ... 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_manager.ManagerSyncLocalStateTestCase.test_no_free_worker ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_no_free_worker ... 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.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.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.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped ironic.tests.unit.conductor.test_manager.ManagerSyncLocalStateTestCase.test_not_mapped ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_136_ports_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_136_ports_get_admin ... 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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe04d809-8f67-4a35-80d7-0bd3fe560607 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-06T13:35:22.792614+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-fe04d809-8f67-4a35-80d7-0bd3fe560607 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-06T13:35:22.792614+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-7c3c8526-424b-49b2-a109-4a1d4740034a 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-06T13:35:23.560571+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-7c3c8526-424b-49b2-a109-4a1d4740034a 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-06T13:35:23.560571+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-1afa1a1a-76a7-40db-8ec5-0773bf304eda 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-06T13:35:24.416667+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-1afa1a1a-76a7-40db-8ec5-0773bf304eda 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-06T13:35:24.416667+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-67420397-7495-4b59-b3a1-a3c3cec0d144 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-67420397-7495-4b59-b3a1-a3c3cec0d144 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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a820169d-400b-4c65-97e6-c23bff0b97b9 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-eabace68-1e5d-48cd-825d-de2f0fa87921 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-eabace68-1e5d-48cd-825d-de2f0fa87921 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\": \"\"}"} 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-da047451-21a7-4bbf-916d-d7bf619f6fc1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-da047451-21a7-4bbf-916d-d7bf619f6fc1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.TestRBACModelBeforeScopes.test_rbac_legacy_003_nodes_post_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_003_nodes_post_member ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_136_ports_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_136_ports_get_admin ... ok ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_from_all_nodes_one_pass ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_is_pruned_from_all_nodes_one_pass ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_138_ports_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_138_ports_get_reader ... ok ironic.tests.unit.api.test_acl.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.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.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_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.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.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.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.api.test_acl.TestRBACScoped.test_rbac_legacy_139_ports_post_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_139_ports_post_admin ... ok ironic.tests.unit.conductor.test_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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-45a538d1-fe0b-4de3-a08d-ea037bb53330 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-45a538d1-fe0b-4de3-a08d-ea037bb53330 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-31e89579-7e3f-4f47-be83-10e20b5affc5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-31e89579-7e3f-4f47-be83-10e20b5affc5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b0495ed-212a-4b4c-9cbf-d32158c7aca0 X-Openstack-Ironic-Api-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-06T13:35:27.383979+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} uuid {node_ident} driver fake-driverz ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1b0495ed-212a-4b4c-9cbf-d32158c7aca0 X-Openstack-Ironic-Api-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-06T13:35:27.383979+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-f03051ed-21f7-42f8-ab8e-4393e6e84aed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_006_nodes_get_node_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_006_nodes_get_node_member ... ok ironic.tests.unit.api.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.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.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.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.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.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 ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f03051ed-21f7-42f8-ab8e-4393e6e84aed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-95207f58-4502-4aee-817d-5248f087961d X-Openstack-Ironic-Api-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-06T13:35:28.811257+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-driverz", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_uuid": null, "last_error": null, "lessee": null, "maintenance": false, "maintenance_reason": null, "management_interface": null, "name": null, "network_data": {}, "network_interface": null, "owner": "z", "power_interface": null, "power_state": null, "properties": {"cpu_arch": "x86_64", "cpus": "8", "local_gb": "10", "memory_mb": "4096"}, "protected": false, "protected_reason": null, "provision_state": "available", "provision_updated_at": null, "raid_config": {}, "raid_interface": null, "rescue_interface": null, "reservation": null, "resource_class": null, "retired": false, "retired_reason": null, "secure_boot": null, "storage_interface": null, "target_power_state": null, "target_provision_state": null, "target_raid_config": {}, "traits": ["trait1"], "vendor_interface": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "rel": "bookmark"}], "conductor": null, "allocation_uuid": null, "chassis_uuid": null, "ports": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports", "rel": "bookmark"}], "states": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states", "rel": "bookmark"}], "portgroups": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups", "rel": "bookmark"}], "volume": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume", "rel": "bookmark"}]} uuid {node_ident} driver fake-driverz ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-95207f58-4502-4aee-817d-5248f087961d X-Openstack-Ironic-Api-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-06T13:35:28.811257+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_no_work ironic.tests.unit.conductor.test_manager.NodeHistoryRecordCleanupTestCase.test_history_pruning_no_work ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_142_ports_detail_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_142_ports_detail_get_admin ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73a25ce9-afad-4161-a528-616a66a7a8a2 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-73a25ce9-afad-4161-a528-616a66a7a8a2 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 Content-Type: application/json Openstack-Request-Id: req-d068da27-254c-424a-a222-a8a1f784a5a2 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-d068da27-254c-424a-a222-a8a1f784a5a2 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 Content-Type: application/json Openstack-Request-Id: req-47b21804-04d9-4100-9a60-477b403d52e9 X-Openstack-Ironic-Api-Maximum-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-47b21804-04d9-4100-9a60-477b403d52e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/ports POST: /v1/ports {'node_uuid': '22e26c0b-03f2-4d2e-ae87-c02d7f33c000', 'address': '03:04:05:06:07:08'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3473a7c8-10f4-4bb5-9fcb-97af3f25485a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-3473a7c8-10f4-4bb5-9fcb-97af3f25485a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ac7ff138-b4f7-41a7-9c3e-58f8bea9e51f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-ac7ff138-b4f7-41a7-9c3e-58f8bea9e51f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} API ACL Testing Path get /v1/ports/detail GET: /v1/ports/detail {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3b1412fb-bf11-420d-a050-794698fe3dad 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-06T13:35:29.248350+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-3b1412fb-bf11-420d-a050-794698fe3dad 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-06T13:35:29.248350+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-ab7afa9f-9672-4747-b2b0-03f02e7bd305 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-06T13:35:29.952042+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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d36b751a-cf61-42c5-998a-46ffef9edf06 X-Openstack-Ironic-Api-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-06T13:35:29.378723+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-d36b751a-cf61-42c5-998a-46ffef9edf06 X-Openstack-Ironic-Api-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-06T13:35:29.378723+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-2fa53d45-a98a-43f3-a236-b746709fe0bc 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": "dadc21cf-6559-44c7-a07d-2e6c542db462", "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.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.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.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.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.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.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.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_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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2fa53d45-a98a-43f3-a236-b746709fe0bc 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": "dadc21cf-6559-44c7-a07d-2e6c542db462", "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-e3dc275f-877c-47ed-9693-6342458192bf 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": "750464fa-225e-4c5d-b0d7-d9d5de47808f", "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-e3dc275f-877c-47ed-9693-6342458192bf 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": "750464fa-225e-4c5d-b0d7-d9d5de47808f", "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-bd981659-e5b6-4a22-839d-90472659e373 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-06T13:35:31.381443+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T13:35:31.399837+00:00", "updated_at": "2024-01-06T13:35:31.431673+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": "968f2004-c2ce-41f5-b78b-71e0dd9ae798", "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": "968f2004-c2ce-41f5-b78b-71e0dd9ae798", "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-06T13:35:31.547089+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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-bd981659-e5b6-4a22-839d-90472659e373 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-06T13:35:31.381443+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T13:35:31.399837+00:00", "updated_at": "2024-01-06T13:35:31.431673+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": "968f2004-c2ce-41f5-b78b-71e0dd9ae798", "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": "968f2004-c2ce-41f5-b78b-71e0dd9ae798", "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-06T13:35:31.547089+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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.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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-112c3ede-6b29-4db8-9bac-60a0254bcb04 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-726c9085-b1e6-469f-b793-9e32384566ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-4843292f-f7ea-4fe5-9e03-9bcf9c715fa4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-432eecc5-d354-4a33-905a-3649455980cd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-9d0bc5e4-8034-4a9a-ae1b-50b58c4d74c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-9af5437e-b3ae-4e90-9b13-0cbdd632f337 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-b5467ed7-6bd7-430c-b24f-33f6810ed6ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b2b21d93-a871-4ecd-8e92-05f7dda7c78e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c27c9f7c-9909-440b-b660-3e9e858296a1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-5d77b7b2-f81f-48d9-8a84-113316b7f10c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-08f41ba2-5b31-41c6-8a9c-41be31852ffe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-52fed341-4522-4386-91ac-ab1fced4c28d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a74ae70f-5d88-4c1e-870f-120b510db542 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b1163ff1-0181-49bb-aee8-aeaf201b1bc0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-6d21d838-e40b-460d-9479-513652868f22 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-cefeb949-97ce-4073-8cc3-3c627f583103 X-Openstack-Ironic-Api-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.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.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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ab7afa9f-9672-4747-b2b0-03f02e7bd305 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-06T13:35:29.952042+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-b05aa629-93a7-4563-8c3a-6aba0fa72437 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-06T13:35:30.757624+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-b05aa629-93a7-4563-8c3a-6aba0fa72437 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-06T13:35:30.757624+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-abb77dab-72e0-4161-979c-c016652a9881 X-Openstack-Ironic-Api-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-06T13:35:31.456600+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-abb77dab-72e0-4161-979c-c016652a9881 X-Openstack-Ironic-Api-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-06T13:35:31.456600+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-a9113323-864a-455c-b523-efa2d0de7cae X-Openstack-Ironic-Api-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-06T13:35:32.008784+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-a9113323-864a-455c-b523-efa2d0de7cae X-Openstack-Ironic-Api-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-06T13:35:32.008784+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-1e4d895c-aa5d-4d9d-b2d7-7b771370ce2a X-Openstack-Ironic-Api-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-06T13:35:32.665381+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.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_012_nodes_detail_get_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_012_nodes_detail_get_member ... ok ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config ironic.tests.unit.conductor.test_manager.RaidHardwareTypeTestCases.test_set_target_raid_config ... 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.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.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.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.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.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 API ACL Testing Path get /v1/nodes/detail GET: /v1/nodes/detail {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c02c9f3d-a5e3-49f7-969a-9d6c094cbf36 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c02c9f3d-a5e3-49f7-969a-9d6c094cbf36 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/detail GET: /v1/nodes/detail {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e91800d8-f748-4938-be65-853b3dddc83f 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-06T13:35:33.678035+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T13:35:33.701258+00:00", "updated_at": "2024-01-06T13:35:33.741424+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": "a50ad058-780b-4b62-9625-a9b68265e0bf", "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": "a50ad058-780b-4b62-9625-a9b68265e0bf", "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-06T13:35:33.857990+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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-e91800d8-f748-4938-be65-853b3dddc83f 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-06T13:35:33.678035+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-06T13:35:33.701258+00:00", "updated_at": "2024-01-06T13:35:33.741424+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": "a50ad058-780b-4b62-9625-a9b68265e0bf", "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": "a50ad058-780b-4b62-9625-a9b68265e0bf", "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-06T13:35:33.857990+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": null, "inspection_finished_at": null, "inspection_started_at": null, "inspect_interface": null, "instance_info": {"configdrive": "******", "image_url": "******", "foo": "bar"}, "instance_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.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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_014_nodes_node_ident_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_014_nodes_node_ident_get_admin ... ok ironic.tests.unit.api.test_acl.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.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.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.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.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_driver_vendor_passthru_driver_not_found ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_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_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.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 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-a9b4c76f-6471-4003-898f-918b4a61d003 X-Openstack-Ironic-Api-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-06T13:35:34.565407+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-a9b4c76f-6471-4003-898f-918b4a61d003 X-Openstack-Ironic-Api-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-06T13:35:34.565407+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-6f86ed72-ee0a-4108-bded-c482082f856a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-6f86ed72-ee0a-4108-bded-c482082f856a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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.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.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.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.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.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.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.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.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.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.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.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.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.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_get_driver_vendor_passthru_methods ... ok ironic.tests.unit.conductor.test_manager.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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-99af06b3-e800-4686-8db8-dbe4bc75094c X-Openstack-Ironic-Api-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-06T13:35:36.017576+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-99af06b3-e800-4686-8db8-dbe4bc75094c X-Openstack-Ironic-Api-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-06T13:35:36.017576+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_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-5defad51-a3e6-4e77-9302-a122dfa6602a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5defad51-a3e6-4e77-9302-a122dfa6602a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-73b27027-dbcf-4bae-ad68-bd3c58f0af76 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-73b27027-dbcf-4bae-ad68-bd3c58f0af76 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1e4d895c-aa5d-4d9d-b2d7-7b771370ce2a X-Openstack-Ironic-Api-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-06T13:35:32.665381+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-d151b46c-6f89-4f12-b1a6-bdda16765479 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d151b46c-6f89-4f12-b1a6-bdda16765479 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-04c0afc1-1870-4574-a402-6e5e8e8dc09c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-04c0afc1-1870-4574-a402-6e5e8e8dc09c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-43007e47-04f0-4440-80c8-39a3199932df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-43007e47-04f0-4440-80c8-39a3199932df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ab709973-9619-43f4-9de9-672a4cf6c9ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ab709973-9619-43f4-9de9-672a4cf6c9ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-40f32e55-9c20-4104-b3d3-c88832e6360b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-40f32e55-9c20-4104-b3d3-c88832e6360b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a31ce362-3080-4181-b742-6673e6ebad9f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-a31ce362-3080-4181-b742-6673e6ebad9f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-350e6c75-a12c-4b8d-95d6-31e0fc39dd92 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-350e6c75-a12c-4b8d-95d6-31e0fc39dd92 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} ironic.tests.unit.api.test_acl.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.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.api.test_acl.TestRBACScopedRequests.test_system_scoped_156_nodes_ports_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_156_nodes_ports_get_reader ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.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.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.api.test_acl.TestRBACScopedRequests.test_system_scoped_158_nodes_ports_detail_get_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_158_nodes_ports_detail_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_022_nodes_node_ident_delete_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_022_nodes_node_ident_delete_observer ... ok ironic.tests.unit.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.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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-29ff990b-33d8-4cca-b781-6ccb9c544a57 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-29ff990b-33d8-4cca-b781-6ccb9c544a57 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8facbfb5-b9bd-43b9-9b4c-da13fd8a410d 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-8facbfb5-b9bd-43b9-9b4c-da13fd8a410d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9cd0184a-220d-4eac-a21a-d1e2584dcfe2 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-06T13:35:40.042618+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-9cd0184a-220d-4eac-a21a-d1e2584dcfe2 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-06T13:35:40.042618+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-f505f023-289e-4a5e-abfc-89e235b83dcf 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-06T13:35:40.533036+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-f505f023-289e-4a5e-abfc-89e235b83dcf 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-06T13:35:40.533036+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-28ff327b-2111-424a-9a46-dddef25cb6a3 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-06T13:35:41.064676+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.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_missing_method_parameters ... ok 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-004a77f5-21d3-46e1-ab36-138e83a7b730 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-7fc7ae6a-9e91-40d3-b593-7f2612e3a3c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-56439735-a229-45ec-9793-0b79e5c4fa80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-888e0481-540a-41e6-8403-0d49c7d8e00d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cfbfe811-fbf7-4af6-9bf6-cadbff2e9a7a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-13a81c9c-401d-4196-b6b5-214506e646db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d2977908-d715-40cf-ac3d-9bb244ea0fc8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dcaef97c-01fc-44ec-bd5b-c25b954a5d36 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-42ad7ea7-2298-42e3-a007-197e9d2afb88 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-8edbcb4c-1c37-4f63-9327-7235af7106f5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-fc6e6bae-b948-4ec8-95ad-d0b5b37c77be X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-f9b3fba2-cff3-4885-92ee-a5c36a8b7783 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-7629258b-192c-4279-952d-2f44e19f55dd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-1f11f4c9-d2ca-4e65-bf52-8a8c9f87a4ea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 {} 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.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.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.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.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.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.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.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.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.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.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.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.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.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync ironic.tests.unit.conductor.test_manager.VendorPassthruTestCase.test_vendor_passthru_sync ... 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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b752bd74-04ec-48aa-af79-518c76f7ccdb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b752bd74-04ec-48aa-af79-518c76f7ccdb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-61175f56-8c91-4906-b064-e6b3627056a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-61175f56-8c91-4906-b064-e6b3627056a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-8a8de76e-31c6-42c9-abc2-520712818a46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-8a8de76e-31c6-42c9-abc2-520712818a46 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fe3ae64a-74e8-461c-a6c4-7dea7cca4d79 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fe3ae64a-74e8-461c-a6c4-7dea7cca4d79 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-12ea2b42-4148-4054-a2b7-275ff92e8c7b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-12ea2b42-4148-4054-a2b7-275ff92e8c7b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-584ecb7c-031c-43c1-aca2-5c4f21e2b898 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-584ecb7c-031c-43c1-aca2-5c4f21e2b898 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-384a3fc4-e7df-42db-b7e6-a94f1d7bb2ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:validate\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-384a3fc4-e7df-42db-b7e6-a94f1d7bb2ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-9e3a1d78-a688-4f41-aeac-e5ff2c4d7336 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9e3a1d78-a688-4f41-aeac-e5ff2c4d7336 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-acf1eb2d-9ed6-47ec-b56f-67905466ab9e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.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.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.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_028_nodes_maintenance_put_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_028_nodes_maintenance_put_observer ... ok ironic.tests.unit.api.test_acl.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.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.TestRBACScoped.test_rbac_legacy_166_volume_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_166_volume_get_admin ... ok ironic.tests.unit.api.test_acl.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.conductor.test_periodics.NodePeriodicTestCase.test_exclusive ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_exclusive ... 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.conductor.test_periodics.NodePeriodicTestCase.test_interface_check ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_interface_check ... 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.conductor.test_periodics.NodePeriodicTestCase.test_limit ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_limit ... 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.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_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.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.api.test_acl.TestRBACScoped.test_rbac_legacy_169_volume_connectors_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_169_volume_connectors_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_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.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.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_033_nodes_management_boot_device_put_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_033_nodes_management_boot_device_put_member ... ok ironic.tests.unit.api.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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-28ff327b-2111-424a-9a46-dddef25cb6a3 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-06T13:35:41.064676+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-c281ca69-e655-44f6-906a-43e6edc5470c 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-c281ca69-e655-44f6-906a-43e6edc5470c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": []} API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cc5cba23-a03a-4378-87fc-d411181b17a6 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-cc5cba23-a03a-4378-87fc-d411181b17a6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": []} API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0514e2bd-391e-4837-82f1-83d4fde50eda 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-0514e2bd-391e-4837-82f1-83d4fde50eda X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": []} API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-db10b0ac-eb74-4ad9-a8c3-0d7fb025326f 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-db10b0ac-eb74-4ad9-a8c3-0d7fb025326f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": []} API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e687f12c-4e2b-4e65-a931-d64bea05813e 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-e687f12c-4e2b-4e65-a931-d64bea05813e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": []} API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3a08476c-5573-44a9-99ed-1f93569bd678 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-3a08476c-5573-44a9-99ed-1f93569bd678 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-54f8706a-f56a-430f-b890-456b39b4089c 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-54f8706a-f56a-430f-b890-456b39b4089c 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: 200 OK Content-Type: application/json Openstack-Request-Id: req-0e6c32e0-ddc2-4777-8342-f69c08d03db8 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-0e6c32e0-ddc2-4777-8342-f69c08d03db8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"links": [{"href": "http://localhost/v1/volume/", "rel": "self"}, {"href": "http://localhost/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/volume/connectors", "rel": "self"}, {"href": "http://localhost/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/volume/targets", "rel": "self"}, {"href": "http://localhost/volume/targets", "rel": "bookmark"}]} API ACL Testing Path get /v1/volume GET: /v1/volume {} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_168_volume_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_168_volume_get_reader ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_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.conductor.test_periodics.NodePeriodicTestCase.test_simple ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_simple ... 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.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.conductor.test_periodics.NodePeriodicTestCase.test_stop ironic.tests.unit.conductor.test_periodics.NodePeriodicTestCase.test_stop ... 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 ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-acf1eb2d-9ed6-47ec-b56f-67905466ab9e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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-a6fd4c0f-5855-40d5-98b1-c42f79a1de39 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a6fd4c0f-5855-40d5-98b1-c42f79a1de39 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-2b05eca9-4816-47ee-9a7c-10bde29c7e7d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2b05eca9-4816-47ee-9a7c-10bde29c7e7d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9ed56fe2-9d0b-491f-b792-fd73dab3a44c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-9ed56fe2-9d0b-491f-b792-fd73dab3a44c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0949ab17-2cb0-4cf0-90d8-0b944db65bdc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0949ab17-2cb0-4cf0-90d8-0b944db65bdc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6ac8d750-28b2-4344-aa61-fad03b8d6a88 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6ac8d750-28b2-4344-aa61-fad03b8d6a88 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-d222ca80-ec83-457d-a65d-feac78b17d8e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-d222ca80-ec83-457d-a65d-feac78b17d8e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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-ad306335-bf4f-4a60-a6e3-ad2d23994ae5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ad306335-bf4f-4a60-a6e3-ad2d23994ae5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-8c8c0604-cae8-42d5-8b8c-db57c564793c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_all_steps ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_all_steps ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_170_volume_connectors_get_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_170_volume_connectors_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_174_volume_connectors_post_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_174_volume_connectors_post_observer ... ok ironic.tests.unit.conductor.test_steps.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.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.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_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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e3af481e-9eaa-426d-a237-3432db5e4168 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-5236b531-e6e7-444c-9c89-7fc516d01710 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-3c75ceba-ad64-4608-8e92-f7b795a9d061 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1d77c4d5-7e9e-4403-9064-891cc2cc5a7d X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-da474489-7d74-4683-a390-bf1a7f4352a0 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-2d46caf3-8573-495f-8bb1-01da326223e8 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-bc6d4bd5-e835-43fa-9013-6dba38f12f5f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-9a113b88-ea69-4076-8707-788cddbc942b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-346511ea-1482-4cde-a3c6-5f7a20efa2f2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-42b1282b-312b-4729-ba96-d58857ab91e5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-613a1ed3-5117-4f68-9cd3-5da0279bd06c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-7e119d8e-53f9-4d60-a9e0-1d9131bf1fd2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-5e1c12af-6575-40b6-bf55-acd6eddce96a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d3e03073-aaae-4816-abad-8cbb5c176d09 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-242ed692-9102-40fd-a50e-7059360553a6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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.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.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.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.api.test_acl.TestRBACScoped.test_rbac_legacy_176_volume_volume_connector_id_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_176_volume_volume_connector_id_get_member ... ok ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_all_deployment_steps_no_steps ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fe28b82c-b870-4aca-a491-a6c70195ab34 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-fe28b82c-b870-4aca-a491-a6c70195ab34 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 Content-Type: application/json Openstack-Request-Id: req-d59cdc80-d7c7-44e8-833e-552dfdd5cfd6 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-d59cdc80-d7c7-44e8-833e-552dfdd5cfd6 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 Content-Type: application/json Openstack-Request-Id: req-b9c3dac0-6f36-4827-9fbf-a2e5489e7286 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-b9c3dac0-6f36-4827-9fbf-a2e5489e7286 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 Content-Type: application/json Openstack-Request-Id: req-8f2c58d6-8ce2-4e45-8467-4456d93cee76 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-8f2c58d6-8ce2-4e45-8467-4456d93cee76 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 Content-Type: application/json Location: http://localhost/v1/volume/connectors/d54a1ed1-9c9e-4dff-8aca-68b31439f74a Openstack-Request-Id: req-f180a880-96bb-4b7a-8b7d-c34b8dbe65ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "d54a1ed1-9c9e-4dff-8aca-68b31439f74a", "created_at": "2024-01-06T13:35:51.108965+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/d54a1ed1-9c9e-4dff-8aca-68b31439f74a", "rel": "self"}, {"href": "http://localhost/volume/connectors/d54a1ed1-9c9e-4dff-8aca-68b31439f74a", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} ACL Test GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/d54a1ed1-9c9e-4dff-8aca-68b31439f74a Openstack-Request-Id: req-f180a880-96bb-4b7a-8b7d-c34b8dbe65ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "d54a1ed1-9c9e-4dff-8aca-68b31439f74a", "created_at": "2024-01-06T13:35:51.108965+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/d54a1ed1-9c9e-4dff-8aca-68b31439f74a", "rel": "self"}, {"href": "http://localhost/volume/connectors/d54a1ed1-9c9e-4dff-8aca-68b31439f74a", "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 Location: http://localhost/v1/volume/connectors/15be09c0-9fdd-4fb3-90e1-f43f07de7823 Openstack-Request-Id: req-55db6a3e-bcd3-4cb4-b8b4-fcd9a1ef8005 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "15be09c0-9fdd-4fb3-90e1-f43f07de7823", "created_at": "2024-01-06T13:35:52.204216+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/15be09c0-9fdd-4fb3-90e1-f43f07de7823", "rel": "self"}, {"href": "http://localhost/volume/connectors/15be09c0-9fdd-4fb3-90e1-f43f07de7823", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_173_volume_connectors_post_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_173_volume_connectors_post_member ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_038_nodes_management_boot_device_supported_get_admin ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.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.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.TestRBACScopedRequests.test_system_scoped_175_volume_volume_connector_id_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_175_volume_volume_connector_id_get_admin ... ok ironic.tests.unit.api.test_acl.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.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.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_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_rbac_legacy_180_volume_volume_connector_id_patch_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_180_volume_volume_connector_id_patch_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_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.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.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.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_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.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.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_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_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 ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8c8c0604-cae8-42d5-8b8c-db57c564793c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8c5f5ed0-1ae4-4abf-8126-ea207ee529b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-8c5f5ed0-1ae4-4abf-8126-ea207ee529b2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e864d21c-7ccc-48c5-9f8e-bba8e07521fb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e864d21c-7ccc-48c5-9f8e-bba8e07521fb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0d3f19ca-c3df-47c9-b2e9-f9a6d5c65bf5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0d3f19ca-c3df-47c9-b2e9-f9a6d5c65bf5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8bb48e9d-ff3e-4c9c-941f-07a40b75b008 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-8bb48e9d-ff3e-4c9c-941f-07a40b75b008 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bf9fa4b9-c6e6-4c97-aab2-ac6a4b18281d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bf9fa4b9-c6e6-4c97-aab2-ac6a4b18281d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-96dca871-b883-4e65-8792-9d08eaa44d2d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-96dca871-b883-4e65-8792-9d08eaa44d2d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-01dc04e3-7ffd-4135-a45a-53c90df5a880 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-01dc04e3-7ffd-4135-a45a-53c90df5a880 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/inject_nmi {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5b71a8ca-b048-4c30-b171-08bb28617f6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__get_deploy_steps_unsorted ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_178_volume_volume_connector_id_patch_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_178_volume_volume_connector_id_patch_admin ... ok ironic.tests.unit.api.test_acl.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.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.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_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_rbac_legacy_184_volume_targets_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_184_volume_targets_get_admin ... ok ACL Test GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/15be09c0-9fdd-4fb3-90e1-f43f07de7823 Openstack-Request-Id: req-55db6a3e-bcd3-4cb4-b8b4-fcd9a1ef8005 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "15be09c0-9fdd-4fb3-90e1-f43f07de7823", "created_at": "2024-01-06T13:35:52.204216+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/15be09c0-9fdd-4fb3-90e1-f43f07de7823", "rel": "self"}, {"href": "http://localhost/volume/connectors/15be09c0-9fdd-4fb3-90e1-f43f07de7823", "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-b33a46a5-001d-48c2-804b-dc52be290024 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-b33a46a5-001d-48c2-804b-dc52be290024 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-f709eb9c-b5ae-4666-89f4-e67a440bdf74 X-Openstack-Ironic-Api-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-06T13:35:53.203701+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-f709eb9c-b5ae-4666-89f4-e67a440bdf74 X-Openstack-Ironic-Api-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-06T13:35:53.203701+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-f1ac8a5b-ca65-45de-8173-d0128d686401 X-Openstack-Ironic-Api-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-06T13:35:54.010012+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-f1ac8a5b-ca65-45de-8173-d0128d686401 X-Openstack-Ironic-Api-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-06T13:35:54.010012+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-3da36502-70ee-40ac-89d2-335e68d33c96 X-Openstack-Ironic-Api-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-06T13:35:55.037032+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-3da36502-70ee-40ac-89d2-335e68d33c96 X-Openstack-Ironic-Api-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-06T13:35:55.037032+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-6c1e6a40-88a9-4487-8af5-aba2563d8c42 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6c1e6a40-88a9-4487-8af5-aba2563d8c42 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-a27c5b21-b24b-4856-a114-415a7c3ba609 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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.TestRBACScopedRequests.test_system_scoped_180_volume_volume_connector_id_patch_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_180_volume_volume_connector_id_patch_reader ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.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.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.TestRBACModelBeforeScopes.test_rbac_legacy_047_nodes_states_power_put_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_047_nodes_states_power_put_admin ... ok ironic.tests.unit.api.test_acl.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.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.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.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_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.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.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.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.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.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.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.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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-28bef670-35a1-4cf9-a65c-2d1e84758af1 X-Openstack-Ironic-Api-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-463ac7cc-73fa-4c7d-9d63-a62435e1e4e4 X-Openstack-Ironic-Api-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-70cf5b4c-a47c-48c7-8e10-99440e2a9353 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-451d225c-f0fb-4ffd-8fbe-624d71c6398c X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8cb67601-dec1-4ec6-a1f8-2a31fca43692 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-7bff5da0-837b-43de-a2f7-70d7b85c9157 X-Openstack-Ironic-Api-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-c863270c-87fb-4532-b416-e02ae06ac736 X-Openstack-Ironic-Api-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-05603415-4784-4d53-8694-eb203142add3 X-Openstack-Ironic-Api-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-8cc4c748-3484-4dd9-aa10-4215d4460e6d X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-f9cad59d-d19f-445a-88c0-098a7b943f31 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-dca3d405-741b-4fa1-b65a-f1d83c0898d6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-64f08800-f657-4d28-b078-bd22abdabb47 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-90299f7c-36b5-49ec-b38a-55a23c9c9895 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-df0ae331-8398-455c-8b31-785aa10d5d9a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'} 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.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_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.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.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.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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5b71a8ca-b048-4c30-b171-08bb28617f6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-ec0574d3-a2bf-4e8e-99a5-d85eedac8ead 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-ec0574d3-a2bf-4e8e-99a5-d85eedac8ead X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"console_enabled": false, "last_error": null, "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1539eb77-e7c8-4d3f-a5b7-a25adb4ec508 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-1539eb77-e7c8-4d3f-a5b7-a25adb4ec508 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-ce2155fd-a34b-47ec-928f-bf857bb1192f 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-ce2155fd-a34b-47ec-928f-bf857bb1192f 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-2d38a691-bfdc-4f3d-acea-c39e26dc746f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2d38a691-bfdc-4f3d-acea-c39e26dc746f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-8b3d1f54-8a2b-4364-9b2c-2a1dc2fa75f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-8b3d1f54-8a2b-4364-9b2c-2a1dc2fa75f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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-80c95a97-8ee6-4aa0-bbcd-65bb3ad9d015 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-80c95a97-8ee6-4aa0-bbcd-65bb3ad9d015 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-86d669bc-174d-4a4f-9d18-eb89ab903516 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-86d669bc-174d-4a4f-9d18-eb89ab903516 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.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_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 ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a27c5b21-b24b-4856-a114-415a7c3ba609 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6698ef0b-4702-44ac-917f-c4bca21f418f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-6698ef0b-4702-44ac-917f-c4bca21f418f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ee937fbf-e009-40c7-bf08-5ec1c3dc078a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ee937fbf-e009-40c7-bf08-5ec1c3dc078a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-72fe4419-674a-428c-9f76-eb7201739c82 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-72fe4419-674a-428c-9f76-eb7201739c82 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-55dae12f-3ab1-498b-aeda-19e627680949 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-55dae12f-3ab1-498b-aeda-19e627680949 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} API ACL Testing Path get /v1/volume/targets GET: /v1/volume/targets {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b325838f-5523-470d-84ee-4d2c11e7d161 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-b325838f-5523-470d-84ee-4d2c11e7d161 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} API ACL Testing Path get /v1/volume/targets GET: /v1/volume/targets {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d821d529-cced-40d1-a687-b171224bd591 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-d821d529-cced-40d1-a687-b171224bd591 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} API ACL Testing Path get /v1/volume/targets GET: /v1/volume/targets {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7bfad594-8a76-4c7d-b59b-e8ad900577ba 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.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_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_skip_missing ironic.tests.unit.conductor.test_steps.NodeDeployStepsTestCase.test__validate_user_deploy_steps_skip_missing ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_template ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_error_on_template ... ok ironic.tests.unit.api.test_acl.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.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.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.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_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_ok ... 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.api.test_acl.TestRBACScopedRequests.test_system_scoped_189_volume_targets_post_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_189_volume_targets_post_reader ... ok ironic.tests.unit.api.test_acl.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.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing ironic.tests.unit.conductor.test_steps.ValidateUserDeployStepsAndTemplatesTestCase.test_skip_missing ... 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.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.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.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.conductor.test_utils.CacheVendorTestCase.test_empty ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_empty ... 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.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.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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7bfad594-8a76-4c7d-b59b-e8ad900577ba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} API ACL Testing Path post /v1/volume/targets POST: /v1/volume/targets {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'volume_type': 'iscsi', 'boot_index': 1, 'volume_id': 'test-id'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/307a9cbc-62db-4d07-8f01-57fd1c4d3392 Openstack-Request-Id: req-020e6ae5-3334-44a7-bf1d-fa41a7f20c2a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "307a9cbc-62db-4d07-8f01-57fd1c4d3392", "created_at": "2024-01-06T13:36:03.009671+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/307a9cbc-62db-4d07-8f01-57fd1c4d3392", "rel": "self"}, {"href": "http://localhost/volume/targets/307a9cbc-62db-4d07-8f01-57fd1c4d3392", "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/307a9cbc-62db-4d07-8f01-57fd1c4d3392 Openstack-Request-Id: req-020e6ae5-3334-44a7-bf1d-fa41a7f20c2a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "307a9cbc-62db-4d07-8f01-57fd1c4d3392", "created_at": "2024-01-06T13:36:03.009671+00:00", "updated_at": null, "boot_index": 1, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/307a9cbc-62db-4d07-8f01-57fd1c4d3392", "rel": "self"}, {"href": "http://localhost/volume/targets/307a9cbc-62db-4d07-8f01-57fd1c4d3392", "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/8c145ecb-fce2-4023-b6b5-c4a3fdd8c1c8 Openstack-Request-Id: req-b3fe8a89-9dca-4248-b337-929e7b3bdd0e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "8c145ecb-fce2-4023-b6b5-c4a3fdd8c1c8", "created_at": "2024-01-06T13:36:03.831434+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/8c145ecb-fce2-4023-b6b5-c4a3fdd8c1c8", "rel": "self"}, {"href": "http://localhost/volume/targets/8c145ecb-fce2-4023-b6b5-c4a3fdd8c1c8", "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/8c145ecb-fce2-4023-b6b5-c4a3fdd8c1c8 Openstack-Request-Id: req-b3fe8a89-9dca-4248-b337-929e7b3bdd0e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "8c145ecb-fce2-4023-b6b5-c4a3fdd8c1c8", "created_at": "2024-01-06T13:36:03.831434+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/8c145ecb-fce2-4023-b6b5-c4a3fdd8c1c8", "rel": "self"}, {"href": "http://localhost/volume/targets/8c145ecb-fce2-4023-b6b5-c4a3fdd8c1c8", "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-55155a80-dbb2-4dad-b487-770d6778593a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-55155a80-dbb2-4dad-b487-770d6778593a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 200 OK Content-Type: application/json Openstack-Request-Id: req-24f714f8-ea40-48e1-83ff-b9fc95f798c8 X-Openstack-Ironic-Api-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-06T13:36:05.049080+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-24f714f8-ea40-48e1-83ff-b9fc95f798c8 X-Openstack-Ironic-Api-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-06T13:36:05.049080+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-f25aa5b0-c346-44f3-ae7c-99f1af258fdb X-Openstack-Ironic-Api-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-06T13:36:05.900668+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_utils.CacheVendorTestCase.test_ok ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_ok ... 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.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.conductor.test_utils.CacheVendorTestCase.test_unsupported ironic.tests.unit.conductor.test_utils.CacheVendorTestCase.test_unsupported ... 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.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout ... ok ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_cleanup_after_timeout_shared_lock ... ok ironic.tests.unit.api.test_acl.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.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler ... ok GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a92b563a-e217-4b88-ae5e-fe3489a42141 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-a92b563a-e217-4b88-ae5e-fe3489a42141 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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-f81c6c40-f0c5-4c2c-afaf-81949c9fabfe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-f81c6c40-f0c5-4c2c-afaf-81949c9fabfe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-5fc49183-5bf4-4883-8a61-926222109fd3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5fc49183-5bf4-4883-8a61-926222109fd3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9f815487-ef97-4c1a-976a-ce12b977c790 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-9f815487-ef97-4c1a-976a-ce12b977c790 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/secure_boot {'target': 'true'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fc655332-a5ff-4d7a-905d-4da5dd06c64a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-fc655332-a5ff-4d7a-905d-4da5dd06c64a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_secure_boot\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-351f3224-b11a-4817-884f-a97b315aa5b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-351f3224-b11a-4817-884f-a97b315aa5b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5b9cc5e3-3d60-4403-9ae8-cf252f13079a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-5b9cc5e3-3d60-4403-9ae8-cf252f13079a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/provision {'target': 'deploy'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4bb9bd0d-ff15-45a8-ad6a-fd006e66943f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-4bb9bd0d-ff15-45a8-ad6a-fd006e66943f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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.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.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.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.api.test_acl.TestRBACScopedRequests.test_system_scoped_194_volume_volume_target_id_patch_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_194_volume_volume_target_id_patch_reader ... ok ironic.tests.unit.api.test_acl.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.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy ironic.tests.unit.conductor.test_utils.DeployingErrorHandlerTestCase.test_deploying_error_handler_not_deploy ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_061_nodes_states_raid_put_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_061_nodes_states_raid_put_observer ... ok ironic.tests.unit.conductor.test_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_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.TestRBACScoped.test_rbac_legacy_201_nodes_volume_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_201_nodes_volume_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_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_utils.ErrorHandlersTestCase.test_cleaning_error_handler ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler ... 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_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanfail ... 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.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.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_cleanwait ... ok ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleaning_error_handler_manual ... 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_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.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.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.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-478dd5f1-4627-428f-b48b-93563d4ce0e3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1e2ae498-4e06-45f2-9b68-d9ef900f8143 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d084835d-c093-4453-9546-c0c6addf1f51 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-bf9eaf1e-0ac0-4f32-b193-f70035cb18c5 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1426037d-303f-4bb8-838a-7abed019bfaf X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1d605d6a-dde8-4ae6-a97f-cc4f67e3fa80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a5037748-0958-40f4-bcc3-7965e3a97ad4 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-02bd5973-8589-4493-a790-a0f14773a508 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-e1202d17-9c79-4dfb-933a-def6a7c66ffe X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-9f6640db-14c8-4189-a985-096dfab8c44a X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-74df9c71-2ee5-436f-9496-2c477f0c74fb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-632fd82a-e21d-4dd8-9d0c-2fdf54cba645 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ce70cae1-d461-48ac-952f-d44b544bcc9b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-9b18ed1f-83b1-4b61-9394-96e130db387b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 {} 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.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.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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f25aa5b0-c346-44f3-ae7c-99f1af258fdb X-Openstack-Ironic-Api-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-06T13:36:05.900668+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-b54a700a-5bad-4ed0-b163-27272c4be836 X-Openstack-Ironic-Api-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-06T13:36:06.726277+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-b54a700a-5bad-4ed0-b163-27272c4be836 X-Openstack-Ironic-Api-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-06T13:36:06.726277+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-dc294ccc-74d2-4733-8169-8f4220a7add2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-dc294ccc-74d2-4733-8169-8f4220a7add2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-8019e9dc-9ddd-47a1-8928-d56df8f6cce4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-8019e9dc-9ddd-47a1-8928-d56df8f6cce4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e3f0b79d-f0dd-4172-8e5a-18ce65e6c14c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e3f0b79d-f0dd-4172-8e5a-18ce65e6c14c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-5f69423b-8794-4074-ad9d-b782f397daea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5f69423b-8794-4074-ad9d-b782f397daea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3bfd6317-56d5-4eb0-be85-9d2e29c5a27f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-3bfd6317-56d5-4eb0-be85-9d2e29c5a27f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_198_nodes_volume_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_198_nodes_volume_get_admin ... ok ironic.tests.unit.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.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_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout ... 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.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_cleanup_rescuewait_timeout_known_exc ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_205_nodes_volume_targets_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_205_nodes_volume_targets_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_066_nodes_states_console_put_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_066_nodes_states_console_put_observer ... ok ironic.tests.unit.conductor.test_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.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.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.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.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 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-cee7161c-716c-4d81-ab7a-d108cdfe672c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-cee7161c-716c-4d81-ab7a-d108cdfe672c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-b4aa0881-a0eb-4ab0-8250-8a14d4de1604 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-b4aa0881-a0eb-4ab0-8250-8a14d4de1604 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5101dfe7-91d6-4377-aab4-631641fdf546 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-5101dfe7-91d6-4377-aab4-631641fdf546 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5fcc4225-5449-440e-80af-69fda5443e3e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-5fcc4225-5449-440e-80af-69fda5443e3e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-6fbf0908-f1fc-46df-bf3a-7be505642a12 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-6fbf0908-f1fc-46df-bf3a-7be505642a12 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1dc4fc9f-59ed-4d36-b62b-27a27038c9b3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1dc4fc9f-59ed-4d36-b62b-27a27038c9b3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-45008d19-22c5-41c9-8c02-3ae68329f5c3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-45008d19-22c5-41c9-8c02-3ae68329f5c3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/console {'enabled': True} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ffe89c7e-02b7-48ca-a653-1603472d5513 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-ffe89c7e-02b7-48ca-a653-1603472d5513 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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_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.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.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.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.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.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_rescuing_error_handler ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a61aa42-b6c6-4d1c-ab2a-c8087512915b 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-1a61aa42-b6c6-4d1c-ab2a-c8087512915b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a32b1689-ed05-43df-b3d6-579ae63c7a36 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-a32b1689-ed05-43df-b3d6-579ae63c7a36 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-592025ee-23c7-4cb4-bb26-939effc049a4 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-592025ee-23c7-4cb4-bb26-939effc049a4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-98c2d2cb-a12e-4718-81b9-1a6488304cc8 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-98c2d2cb-a12e-4718-81b9-1a6488304cc8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3166216f-440f-452c-b138-ea2ec3cec71a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_202_nodes_volume_connectors_get_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_202_nodes_volume_connectors_get_member ... ok ironic.tests.unit.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.api.test_acl.TestRBACScopedRequests.test_system_scoped_205_nodes_volume_targets_get_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_205_nodes_volume_targets_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_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.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.api.test_acl.TestRBACScoped.test_rbac_legacy_213_drivers_driver_name_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_213_drivers_driver_name_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_206_nodes_volume_targets_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_206_nodes_volume_targets_get_reader ... ok ironic.tests.unit.api.test_acl.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.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error ironic.tests.unit.conductor.test_utils.ErrorHandlersTestCase.test_spawn_deploying_error_handler_other_error ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_207_drivers_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_207_drivers_get_admin ... 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.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.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_074_nodes_vendor_passthru_post_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_074_nodes_vendor_passthru_post_member ... ok ironic.tests.unit.conductor.test_utils.MiscTestCase.test_exclude_current_conductor ironic.tests.unit.conductor.test_utils.MiscTestCase.test_exclude_current_conductor ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_208_drivers_get_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_208_drivers_get_member ... ok ironic.tests.unit.api.test_acl.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.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean ironic.tests.unit.conductor.test_utils.MiscTestCase.test_notify_conductor_resume_clean ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4b0c230c-7654-494e-ba57-da2242ca7946 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4b0c230c-7654-494e-ba57-da2242ca7946 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-dc982c03-91ad-4b65-b91b-8b5e653d0b07 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-dc982c03-91ad-4b65-b91b-8b5e653d0b07 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-08b8b3ab-6833-461c-b22f-d3cbaf0808bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-08b8b3ab-6833-461c-b22f-d3cbaf0808bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-80a9bbce-1327-4e63-98d7-818cfeab42a3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-80a9bbce-1327-4e63-98d7-818cfeab42a3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-42824f2f-2bdf-433c-9074-43b6f0372a2f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-42824f2f-2bdf-433c-9074-43b6f0372a2f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-32d38d76-2a92-414d-af01-7315044d62d6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-32d38d76-2a92-414d-af01-7315044d62d6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-68ae10e2-1205-4e4f-aa74-ed7ce53289ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-68ae10e2-1205-4e4f-aa74-ed7ce53289ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-aade03b6-88fc-42ad-a825-1035a59434aa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-aade03b6-88fc-42ad-a825-1035a59434aa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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.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.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.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.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.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_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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3166216f-440f-452c-b138-ea2ec3cec71a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f08d0be6-9d1c-4cf2-bb99-9cd3c3ee044f 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-f08d0be6-9d1c-4cf2-bb99-9cd3c3ee044f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-078b5ac1-fcc8-4166-86e3-7618086dfb17 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-078b5ac1-fcc8-4166-86e3-7618086dfb17 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3e1fd331-3fe3-49f4-a058-0ad2e9bd3336 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-3e1fd331-3fe3-49f4-a058-0ad2e9bd3336 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fa499345-30b2-45cc-a57b-33be7aa34fe6 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-fa499345-30b2-45cc-a57b-33be7aa34fe6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} API ACL Testing Path get /v1/drivers GET: /v1/drivers {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0926afe9-8651-4aba-8fc6-7bcf2894a6bb 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-0926afe9-8651-4aba-8fc6-7bcf2894a6bb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"drivers": []} API ACL Testing Path get /v1/drivers GET: /v1/drivers {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-46a52a15-e412-4c05-b7a1-06f5dfca124e 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-46a52a15-e412-4c05-b7a1-06f5dfca124e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"drivers": []} API ACL Testing Path get /v1/drivers GET: /v1/drivers {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b03cbb16-489f-4d89-b769-9fdd0fde454a 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-b03cbb16-489f-4d89-b769-9fdd0fde454a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"drivers": []} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_210_drivers_driver_name_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_210_drivers_driver_name_get_admin ... ok GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-162ed827-58bf-4e74-903f-724a1ba60d95 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-e293837d-d7b9-42dd-bd1d-f4d500113773 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-8e648aef-4040-42cf-b3ad-27d4a8efeb60 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-1dac6c4c-e734-4712-a870-e780e17b9e4d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-735fb479-30f0-4ca3-bba9-0be9889a2188 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-41e6daef-a001-4bbc-9b99-aaae4ec063d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers GET: /v1/drivers {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8b5211db-5fad-473d-a0bd-c653ccfee4da X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers GET: /v1/drivers {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-bd5ca132-ed6a-4796-b224-7a4112b529c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz GET: /v1/drivers/fake-driverz {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6e72a3b8-b778-40f5-b035-60d29ae93cc4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz GET: /v1/drivers/fake-driverz {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-df2c1a47-517e-440e-8519-31f041232c89 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz GET: /v1/drivers/fake-driverz {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-35af590b-3b51-4f9d-8c60-91c35566defa X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8696aad6-f5f5-4ff7-8817-2bb89d905686 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1da7da51-5923-47cb-bd1a-a0eb493c57f0 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d0ad86ef-4a0e-45e3-9e51-82243c13d30d X-Openstack-Ironic-Api-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 {} 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.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.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.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.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.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.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_078_nodes_vendor_passthru_put_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_078_nodes_vendor_passthru_put_observer ... ok ironic.tests.unit.api.test_acl.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.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.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.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_079_nodes_vendor_passthru_delete_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_079_nodes_vendor_passthru_delete_admin ... ok ironic.tests.unit.api.test_acl.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.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.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.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_080_nodes_vendor_passthru_delete_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_080_nodes_vendor_passthru_delete_member ... ok ironic.tests.unit.api.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.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported ironic.tests.unit.conductor.test_utils.NodeGetBootModeTestCase.test_node_get_boot_mode_unsupported ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.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.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_082_nodes_traits_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_082_nodes_traits_get_admin ... ok ironic.tests.unit.api.test_acl.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.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.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9000ee8a-0601-492d-b8e6-b69beaf077ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-9000ee8a-0601-492d-b8e6-b69beaf077ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-39edbb37-c387-480c-bd9c-8c09554d501f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-39edbb37-c387-480c-bd9c-8c09554d501f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-4c9c06b6-32eb-4780-b664-04501dd2ef89 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-4c9c06b6-32eb-4780-b664-04501dd2ef89 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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-dc5a6ffc-ce23-4d1c-9d97-cb1ea37fa3d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-dc5a6ffc-ce23-4d1c-9d97-cb1ea37fa3d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-ca95ee20-0067-4bc0-9971-da70f93c257c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ca95ee20-0067-4bc0-9971-da70f93c257c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vendor_passthru?method=test GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6da6b7b3-9798-42cc-861c-a9ce3ed7fecd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-6da6b7b3-9798-42cc-861c-a9ce3ed7fecd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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-07643e11-3829-4cbd-8b63-8cc8ac074963 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-07643e11-3829-4cbd-8b63-8cc8ac074963 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-7bd23684-f802-47ea-9260-39fda18912b4 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-7bd23684-f802-47ea-9260-39fda18912b4 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-126abe7c-7c10-40a3-a871-7818ed91121a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_083_nodes_traits_get_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_083_nodes_traits_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_217_drivers_raid_logical_disk_properties_get_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_217_drivers_raid_logical_disk_properties_get_member ... ok ironic.tests.unit.api.test_acl.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.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.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.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid ironic.tests.unit.conductor.test_utils.NodeSetBootDeviceTestCase.test_node_set_boot_device_valid ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_218_drivers_raid_logical_disk_properties_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_218_drivers_raid_logical_disk_properties_get_reader ... ok ironic.tests.unit.api.test_acl.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.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.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 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-c0e5558d-6339-4d9a-8917-7cef44d4e064 X-Openstack-Ironic-Api-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-c0e5558d-6339-4d9a-8917-7cef44d4e064 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz GET: /v1/drivers/fake-driverz {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-506288cf-09ef-448f-afff-07ade336fc11 X-Openstack-Ironic-Api-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-506288cf-09ef-448f-afff-07ade336fc11 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz GET: /v1/drivers/fake-driverz {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-782a0b36-858e-4a22-a892-4998753274e3 X-Openstack-Ironic-Api-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-782a0b36-858e-4a22-a892-4998753274e3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz/properties GET: /v1/drivers/fake-driverz/properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-74e38ca4-e20c-4cd2-b515-65e8d8f13583 X-Openstack-Ironic-Api-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-74e38ca4-e20c-4cd2-b515-65e8d8f13583 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz/properties GET: /v1/drivers/fake-driverz/properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c6fe0b3d-ec5f-4961-b764-8726d05f517a X-Openstack-Ironic-Api-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-c6fe0b3d-ec5f-4961-b764-8726d05f517a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz/properties GET: /v1/drivers/fake-driverz/properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e97fb3d5-efa4-4607-9910-6b67bc4a29b8 X-Openstack-Ironic-Api-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-e97fb3d5-efa4-4607-9910-6b67bc4a29b8 X-Openstack-Ironic-Api-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-376fff63-8e64-4ce2-942b-5bbe6c3474ee X-Openstack-Ironic-Api-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-376fff63-8e64-4ce2-942b-5bbe6c3474ee X-Openstack-Ironic-Api-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-9317d545-8376-42c8-8899-0493d11cf071 X-Openstack-Ironic-Api-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-9317d545-8376-42c8-8899-0493d11cf071 X-Openstack-Ironic-Api-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-79b63c8e-e08a-49e7-9c88-ccf9abb7acdf X-Openstack-Ironic-Api-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-79b63c8e-e08a-49e7-9c88-ccf9abb7acdf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_219_drivers_vendor_passthru_methods_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_219_drivers_vendor_passthru_methods_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_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_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.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.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.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.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.api.test_acl.TestRBACScopedRequests.test_system_scoped_221_drivers_vendor_passthru_methods_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_221_drivers_vendor_passthru_methods_get_reader ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_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_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.TestRBACModelBeforeScopes.test_rbac_legacy_086_nodes_traits_put_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_086_nodes_traits_put_member ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_222_drivers_vendor_passthru_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_222_drivers_vendor_passthru_get_admin ... ok GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b122119a-4197-4fd6-8d67-fd03959dbc2c X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-dd098f96-ea95-4ce4-978d-192787d5d276 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ad4dfe36-1190-4634-8aa9-ac63c82fcbfa X-Openstack-Ironic-Api-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-a7719e30-5eb7-49e0-b3c2-627c11944728 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c915bdb1-bddb-40f1-8c9a-b1f774e977b1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-24e5bfff-b06a-47e6-8f86-292e454a6f44 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-cc9bdcb8-ab07-4c45-83b4-8f92e5dcf92e X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-3ea1d15e-5788-4979-aba6-9a4d6f4359c2 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-92a97628-edd3-4951-b780-23a5a4a4aaf4 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d50aa816-0725-46e5-b949-f82b2c2d6efc X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0090f2a5-9116-4cd5-bc27-aeba01444251 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a93ad679-c052-4e5f-9431-d2b45b9a445e X-Openstack-Ironic-Api-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 ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_229_drivers_vendor_passthru_put_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_229_drivers_vendor_passthru_put_admin ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_087_nodes_traits_put_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_087_nodes_traits_put_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_223_drivers_vendor_passthru_get_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_223_drivers_vendor_passthru_get_member ... ok ironic.tests.unit.api.test_acl.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_224_drivers_vendor_passthru_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_224_drivers_vendor_passthru_get_reader ... ok ironic.tests.unit.api.test_acl.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.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.api.test_acl.TestRBACScopedRequests.test_system_scoped_225_drivers_vendor_passthru_post_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_225_drivers_vendor_passthru_post_admin ... ok ironic.tests.unit.api.test_acl.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.api.test_acl.TestRBACScoped.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin ... skipped 'not updated for scope testing' ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_226_drivers_vendor_passthru_post_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_226_drivers_vendor_passthru_post_member ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_090_nodes_traits_delete_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_090_nodes_traits_delete_observer ... ok ironic.tests.unit.api.test_acl.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' GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-15179229-29ca-411c-ab62-b6e2907d6ae0 X-Openstack-Ironic-Api-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-15179229-29ca-411c-ab62-b6e2907d6ae0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-992568ed-ca77-4f00-9af2-9408611498bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-992568ed-ca77-4f00-9af2-9408611498bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-61ce74f4-7a73-4f8a-b02d-410e91ace83c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-61ce74f4-7a73-4f8a-b02d-410e91ace83c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-35b0f793-33c7-416a-a00f-d80905ad46ec X-Openstack-Ironic-Api-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-35b0f793-33c7-416a-a00f-d80905ad46ec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ce5e0afc-3bb4-49de-a21a-4e0b4e17be78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-ce5e0afc-3bb4-49de-a21a-4e0b4e17be78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-c3b6f27e-80e8-4351-bcf1-0f7ed693ec9d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-c3b6f27e-80e8-4351-bcf1-0f7ed693ec9d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-8d58cd81-ce7e-420f-bcef-f407e96a2216 X-Openstack-Ironic-Api-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-8d58cd81-ce7e-420f-bcef-f407e96a2216 X-Openstack-Ironic-Api-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-c24a5461-f0c8-4b03-8f7c-da12ec152c54 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-c24a5461-f0c8-4b03-8f7c-da12ec152c54 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-3f7eb612-a5d3-4299-9421-b4830daf1d59 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_227_drivers_vendor_passthru_post_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_227_drivers_vendor_passthru_post_reader ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_091_nodes_traits_trait_put_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_091_nodes_traits_trait_put_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_234_nodes_bios_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_234_nodes_bios_get_admin ... 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 ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-126abe7c-7c10-40a3-a871-7818ed91121a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-c8067a17-5555-4690-84dc-3e77de3c160f 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-c8067a17-5555-4690-84dc-3e77de3c160f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"traits": ["trait1"]} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits {'traits': ['CUSTOM_TRAIT1', 'HW_CPU_X86_VMX']} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-21221152-fb40-40b6-a231-b7d37b964a78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-21221152-fb40-40b6-a231-b7d37b964a78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-ed0e0470-7f79-4f55-b8c5-087f4a10e1cc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-ed0e0470-7f79-4f55-b8c5-087f4a10e1cc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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-324c7fca-3ac3-43ab-9bb3-7de5588a531b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-324c7fca-3ac3-43ab-9bb3-7de5588a531b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b399f5b0-df53-46e2-a21d-8d7f1930d5a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b399f5b0-df53-46e2-a21d-8d7f1930d5a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a1333d45-198f-4c61-882b-4fffe8d15515 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-a1333d45-198f-4c61-882b-4fffe8d15515 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9a514f5c-7164-410f-b671-f00c3d297907 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-9a514f5c-7164-410f-b671-f00c3d297907 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:delete\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b4c85124-dbd9-4899-96db-fdd40c1aa102 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b4c85124-dbd9-4899-96db-fdd40c1aa102 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.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.api.test_acl.TestRBACScopedRequests.test_system_scoped_229_drivers_vendor_passthru_put_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_229_drivers_vendor_passthru_put_member ... ok ironic.tests.unit.api.test_acl.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.TestRBACModelBeforeScopes.test_rbac_legacy_093_nodes_traits_trait_put_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_093_nodes_traits_trait_put_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_230_drivers_vendor_passthru_put_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_230_drivers_vendor_passthru_put_reader ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_237_nodes_bios_bios_setting_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_237_nodes_bios_bios_setting_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_094_nodes_traits_trait_delete_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_094_nodes_traits_trait_delete_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_231_drivers_vendor_passthru_delete_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_231_drivers_vendor_passthru_delete_admin ... ok ironic.tests.unit.api.test_acl.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.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_232_drivers_vendor_passthru_delete_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_232_drivers_vendor_passthru_delete_reader ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_239_nodes_bios_bios_setting_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_239_nodes_bios_bios_setting_get_observer ... ok ironic.tests.unit.api.test_acl.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.api.test_acl.TestRBACScopedRequests.test_system_scoped_233_nodes_bios_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_233_nodes_bios_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_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.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_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.TestRBACScoped.test_rbac_legacy_241_conductors_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_241_conductors_get_member ... ok ironic.tests.unit.api.test_acl.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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3f7eb612-a5d3-4299-9421-b4830daf1d59 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-43832bce-edcf-4c8c-8ba8-704586bacd8d X-Openstack-Ironic-Api-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-43832bce-edcf-4c8c-8ba8-704586bacd8d X-Openstack-Ironic-Api-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-39a35501-b919-42eb-845a-6b77d0327839 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-39a35501-b919-42eb-845a-6b77d0327839 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-f05923b6-f074-4db6-b9e0-3e1a94af1c28 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-f05923b6-f074-4db6-b9e0-3e1a94af1c28 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/drivers/fake-driverz/vendor_passthru?method=test DELETE: /v1/drivers/fake-driverz/vendor_passthru?method=test GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-79093e95-0bf8-4749-8e3c-74293082b0bb X-Openstack-Ironic-Api-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-79093e95-0bf8-4749-8e3c-74293082b0bb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/drivers/fake-driverz/vendor_passthru?method=test DELETE: /v1/drivers/fake-driverz/vendor_passthru?method=test GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-de799ac8-2013-4682-9f6c-1ca63d98c0bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-de799ac8-2013-4682-9f6c-1ca63d98c0bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cb8f2c84-6553-41d7-b65e-feda6912a296 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-06T13:36:38.091077+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-cb8f2c84-6553-41d7-b65e-feda6912a296 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-06T13:36:38.091077+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-c3097df3-c572-4b31-85dc-96f7ce4c8bbf 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-06T13:36:38.928587+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-c3097df3-c572-4b31-85dc-96f7ce4c8bbf 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-06T13:36:38.928587+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios {} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_235_nodes_bios_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_235_nodes_bios_get_reader ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_242_conductors_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_242_conductors_get_observer ... ok ironic.tests.unit.api.test_acl.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.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_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.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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1266a50a-3d55-4e7f-9efb-b55ba36ec5c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-1266a50a-3d55-4e7f-9efb-b55ba36ec5c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/CUSTOM_TRAIT2 None GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5c76e905-c290-4128-8c75-d19ab0d8a759 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-5c76e905-c290-4128-8c75-d19ab0d8a759 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:traits:set\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-372e56c8-792e-40d1-9af2-4cf336a5f69e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-372e56c8-792e-40d1-9af2-4cf336a5f69e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-00659f27-6ac0-4781-991f-b180bc39745d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-00659f27-6ac0-4781-991f-b180bc39745d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/traits/trait GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0bc3bdc3-c876-42c5-8380-36af004ec4c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-0bc3bdc3-c876-42c5-8380-36af004ec4c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-43d81159-54ae-4d83-8ac2-29ffb4fa0c7d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-43d81159-54ae-4d83-8ac2-29ffb4fa0c7d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-e7f60457-d426-4a33-b95a-2a674cf27d84 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-e7f60457-d426-4a33-b95a-2a674cf27d84 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-04f8b38b-d54c-4636-a997-f2359c7e50fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-04f8b38b-d54c-4636-a997-f2359c7e50fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-cf297028-e62b-444f-a372-2c5d0ceb0ca6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_101_nodes_vifs_post_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_101_nodes_vifs_post_member ... ok ironic.tests.unit.api.test_acl.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 GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b601e702-6fe4-4e3c-b635-590a66722aed X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-5162e20a-0bb6-4820-ad21-3067ae571c6a X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-46ab71e1-19bc-4fd5-8af0-b26ac961f487 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c02a9b64-03ed-403e-be19-0db5038535c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-14cc4dc9-ed06-46ba-9f02-cd01a9d5a580 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-f228f5c0-a18b-41dd-bd5b-0cac75bb0472 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-e3143943-df02-4b0b-9d3e-59d3cf6d64df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-3c2d67c4-4992-4991-89e8-fe128011853f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-484b5bea-4586-47b2-b144-b5a2d6354491 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-b02ca8b2-45dd-4d22-b7f3-af937c2545b8 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-9bd7c1d8-8017-4454-9bf3-e21fe4b5b7e3 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d715c979-f4a4-4048-be8e-ac282c457e4a X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0e9ac9c0-ced8-4b30-b427-75e241064f38 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-2b9c1b2f-2098-4d55-bcef-9c000ceecc23 X-Openstack-Ironic-Api-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 {} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_245_conductors_hostname_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_245_conductors_hostname_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_239_conductors_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_239_conductors_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_246_allocations_post_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_246_allocations_post_admin ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_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.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." GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24561781-c442-40c3-a25c-748f9bfd2987 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-06T13:36:39.760586+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-24561781-c442-40c3-a25c-748f9bfd2987 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-06T13:36:39.760586+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-8fd4b58b-db02-48f0-9067-07ecd34c9fb2 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-06T13:36:40.559089+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-8fd4b58b-db02-48f0-9067-07ecd34c9fb2 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-06T13:36:40.559089+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-94aa6e91-bcbb-4568-8ab3-92c7084139c5 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-06T13:36:41.711933+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-94aa6e91-bcbb-4568-8ab3-92c7084139c5 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-06T13:36:41.711933+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-71f1c8a3-aeeb-4a28-ac00-9ab94ec43e74 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-06T13:36:42.766907+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-71f1c8a3-aeeb-4a28-ac00-9ab94ec43e74 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-06T13:36:42.766907+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-b805b1e9-ac3d-4218-8364-2d6298421e1d 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-b805b1e9-ac3d-4218-8364-2d6298421e1d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"conductors": [{"hostname": "test-conductor-node", "conductor_group": "", "links": [{"href": "http://localhost/v1/conductors/test-conductor-node", "rel": "self"}, {"href": "http://localhost/conductors/test-conductor-node", "rel": "bookmark"}], "alive": true}]} API ACL Testing Path get /v1/conductors GET: /v1/conductors {} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_240_conductors_get_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_240_conductors_get_member ... ok ironic.tests.unit.api.test_acl.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.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.api.test_acl.TestRBACScopedRequests.test_system_scoped_241_conductors_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_241_conductors_get_reader ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_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.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.api.test_acl.TestRBACScopedRequests.test_system_scoped_242_conductors_hostname_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_242_conductors_hostname_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_105_nodes_vifs_node_vif_ident_delete_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_250_allocations_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_250_allocations_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_243_conductors_hostname_get_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_243_conductors_hostname_get_member ... ok ironic.tests.unit.api.test_acl.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.api.test_acl.TestRBACScoped.test_rbac_legacy_251_allocations_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_251_allocations_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_conductors_hostname_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_244_conductors_hostname_get_reader ... ok ironic.tests.unit.api.test_acl.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.api.test_acl.TestRBACScoped.test_rbac_legacy_252_allocations_allocation_id_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_252_allocations_allocation_id_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_245_allocations_post_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_245_allocations_post_admin ... ok ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-cf297028-e62b-444f-a372-2c5d0ceb0ca6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs POST: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs {'id': 'ee21d58f-5de2-4956-85ff-33935ea1ca00'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bcdbb9f1-9a7c-4674-a6e3-9edb33ae231b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-bcdbb9f1-9a7c-4674-a6e3-9edb33ae231b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8ea92669-6024-4435-a0e7-e592e2128387 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-8ea92669-6024-4435-a0e7-e592e2128387 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-d8a94341-edd7-459b-931e-0174b6966b3e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d8a94341-edd7-459b-931e-0174b6966b3e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/vifs/ee21d58f-5de2-4956-85ff-33935ea1ca00 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7b80de75-5878-468a-8591-1d38f2894de9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-7b80de75-5878-468a-8591-1d38f2894de9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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-0fdd3601-28e7-4872-bd70-d12b51f93b78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-0fdd3601-28e7-4872-bd70-d12b51f93b78 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vif:detach\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-88ed176d-e3b7-49ca-aee4-67ef7dcee25e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-88ed176d-e3b7-49ca-aee4-67ef7dcee25e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/indicators {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ea771e98-ce6c-447e-a972-d4e5c236b134 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-ea771e98-ce6c-447e-a972-d4e5c236b134 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-46f57326-285e-4495-b566-f27897cc824d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.api.test_acl.TestRBACScoped.test_rbac_legacy_253_allocations_allocation_id_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_253_allocations_allocation_id_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_109_nodes_management_indicators_component_get_allow ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_109_nodes_management_indicators_component_get_allow ... skipped 'API appears to be broken and should be patched outside of this work.' ironic.tests.unit.api.test_acl.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.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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5ff5d8c1-8c85-4470-b0c9-cb3357125b8c 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-5ff5d8c1-8c85-4470-b0c9-cb3357125b8c 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: 200 OK Content-Type: application/json Openstack-Request-Id: req-706ae165-065e-4b0d-b73d-f22c4afdbfdf 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-706ae165-065e-4b0d-b73d-f22c4afdbfdf 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 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6c59fa41-b286-4004-8b4a-460e05c99dfd 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-06T13:36:46.011962+00:00", "updated_at": "2024-01-06T13:36:46.019357+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-6c59fa41-b286-4004-8b4a-460e05c99dfd 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-06T13:36:46.011962+00:00", "updated_at": "2024-01-06T13:36:46.019357+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-26a11e15-ca3b-4f71-a853-8fd549a6df98 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-06T13:36:46.957737+00:00", "updated_at": "2024-01-06T13:36:46.965150+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-26a11e15-ca3b-4f71-a853-8fd549a6df98 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-06T13:36:46.957737+00:00", "updated_at": "2024-01-06T13:36:46.965150+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-b1d1dcd6-693a-4438-86e4-fe85e1ca7861 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-06T13:36:47.689914+00:00", "updated_at": "2024-01-06T13:36:47.697660+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-b1d1dcd6-693a-4438-86e4-fe85e1ca7861 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-06T13:36:47.689914+00:00", "updated_at": "2024-01-06T13:36:47.697660+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-bc59ada3-8521-45ef-9bcb-e0b84e97941c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bc59ada3-8521-45ef-9bcb-e0b84e97941c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/allocations POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-61231037-7611-48b7-bb19-bd5acb5aa11e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-61231037-7611-48b7-bb19-bd5acb5aa11e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/allocations POST: /v1/allocations {'resource_class': 'CUSTOM_TEST'} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_247_allocations_post_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_247_allocations_post_reader ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_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.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.api.test_acl.TestRBACScopedRequests.test_system_scoped_248_allocations_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_248_allocations_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_112_portgroups_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_112_portgroups_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_256_allocations_allocation_id_patch_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_256_allocations_allocation_id_patch_member ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_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_113_portgroups_get_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_113_portgroups_get_member ... 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.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.api.test_acl.TestRBACScopedRequests.test_system_scoped_250_allocations_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_250_allocations_get_reader ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_258_allocations_allocation_id_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_258_allocations_allocation_id_delete_admin ... ok ironic.tests.unit.api.test_acl.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.api.test_acl.TestRBACScoped.test_rbac_legacy_259_allocations_allocation_id_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_259_allocations_allocation_id_delete_member ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_251_allocations_allocation_id_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_251_allocations_allocation_id_get_admin ... ok ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync ... skipped "Backend 'postgresql+psycopg2' is unavailable: Could not connect" ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_116_portgroups_post_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_116_portgroups_post_member ... 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.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up ironic.tests.unit.db.sqlalchemy.test_migrations.TestWalkVersions.test_migrate_up ... ok GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-29b508eb-8515-4312-a495-e3faa6cbdd6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-29b508eb-8515-4312-a495-e3faa6cbdd6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} API ACL Testing Path get /v1/allocations GET: /v1/allocations {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-59048a47-cd94-482c-b3ef-49b796d9e511 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": "c3deea32-1326-4736-83cf-afd7c7f604e1", "created_at": "2024-01-06T13:36:51.636499+00:00", "updated_at": "2024-01-06T13:36:51.685860+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/c3deea32-1326-4736-83cf-afd7c7f604e1", "rel": "self"}, {"href": "http://localhost/allocations/c3deea32-1326-4736-83cf-afd7c7f604e1", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-59048a47-cd94-482c-b3ef-49b796d9e511 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": "c3deea32-1326-4736-83cf-afd7c7f604e1", "created_at": "2024-01-06T13:36:51.636499+00:00", "updated_at": "2024-01-06T13:36:51.685860+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/c3deea32-1326-4736-83cf-afd7c7f604e1", "rel": "self"}, {"href": "http://localhost/allocations/c3deea32-1326-4736-83cf-afd7c7f604e1", "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-ae6ecaaf-693e-40cf-b760-3de557cd694f 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": "02fc4734-c7f0-41b9-a1a8-63ca696001f0", "created_at": "2024-01-06T13:36:52.321226+00:00", "updated_at": "2024-01-06T13:36:52.375408+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/02fc4734-c7f0-41b9-a1a8-63ca696001f0", "rel": "self"}, {"href": "http://localhost/allocations/02fc4734-c7f0-41b9-a1a8-63ca696001f0", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae6ecaaf-693e-40cf-b760-3de557cd694f 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": "02fc4734-c7f0-41b9-a1a8-63ca696001f0", "created_at": "2024-01-06T13:36:52.321226+00:00", "updated_at": "2024-01-06T13:36:52.375408+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/02fc4734-c7f0-41b9-a1a8-63ca696001f0", "rel": "self"}, {"href": "http://localhost/allocations/02fc4734-c7f0-41b9-a1a8-63ca696001f0", "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-1aae58f5-a087-462e-ba87-9d8e3f43b42c 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": "1903a8b1-556d-45fc-8d85-322e49a0d8a5", "created_at": "2024-01-06T13:36:53.328569+00:00", "updated_at": "2024-01-06T13:36:53.376958+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/1903a8b1-556d-45fc-8d85-322e49a0d8a5", "rel": "self"}, {"href": "http://localhost/allocations/1903a8b1-556d-45fc-8d85-322e49a0d8a5", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1aae58f5-a087-462e-ba87-9d8e3f43b42c 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": "1903a8b1-556d-45fc-8d85-322e49a0d8a5", "created_at": "2024-01-06T13:36:53.328569+00:00", "updated_at": "2024-01-06T13:36:53.376958+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/1903a8b1-556d-45fc-8d85-322e49a0d8a5", "rel": "self"}, {"href": "http://localhost/allocations/1903a8b1-556d-45fc-8d85-322e49a0d8a5", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} API ACL Testing Path get /v1/allocations/5f79b475-a6fe-40fb-a91f-7bff40f9a842 GET: /v1/allocations/5f79b475-a6fe-40fb-a91f-7bff40f9a842 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b6274d0f-3000-4f27-95e0-c6569d97eb25 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5f79b475-a6fe-40fb-a91f-7bff40f9a842", "created_at": "2024-01-06T13:36:54.932287+00:00", "updated_at": "2024-01-06T13:36:54.981832+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/5f79b475-a6fe-40fb-a91f-7bff40f9a842", "rel": "self"}, {"href": "http://localhost/allocations/5f79b475-a6fe-40fb-a91f-7bff40f9a842", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b6274d0f-3000-4f27-95e0-c6569d97eb25 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5f79b475-a6fe-40fb-a91f-7bff40f9a842", "created_at": "2024-01-06T13:36:54.932287+00:00", "updated_at": "2024-01-06T13:36:54.981832+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/5f79b475-a6fe-40fb-a91f-7bff40f9a842", "rel": "self"}, {"href": "http://localhost/allocations/5f79b475-a6fe-40fb-a91f-7bff40f9a842", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} API ACL Testing Path get /v1/allocations/e8b4f9b8-c49d-4c84-9e7b-79129210dc37 GET: /v1/allocations/e8b4f9b8-c49d-4c84-9e7b-79129210dc37 {} 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.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.TestRBACScopedRequests.test_system_scoped_253_allocations_allocation_id_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_253_allocations_allocation_id_get_reader ... ok ironic.tests.unit.db.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.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 GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0129e869-0e16-4c7c-afd9-15fcf2bc72aa X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-e4ae30ed-293e-40f7-95ec-9d7316cbd00d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-18a55c91-bdd7-4192-9f3e-af00e14197c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1881324f-ed2c-4ecc-b003-9471dedb5116 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-655b3a5f-58a2-4ef5-b872-59506fcacd13 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-09dfe0d3-a8cb-4c0b-a204-9ef2a2a7fabb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/e8581a5e-ea21-4a4d-975a-cbc104dd093e GET: /v1/allocations/e8581a5e-ea21-4a4d-975a-cbc104dd093e {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-74bfb81a-c737-43fe-943b-1afb7c1e83c3 X-Openstack-Ironic-Api-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 e8581a5e-ea21-4a4d-975a-cbc104dd093e could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/allocations/8c53abc8-88f4-4cf6-b871-97d3519e2534 GET: /v1/allocations/8c53abc8-88f4-4cf6-b871-97d3519e2534 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-06ee5b10-f28e-40f1-959a-f20438d1d840 X-Openstack-Ironic-Api-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 8c53abc8-88f4-4cf6-b871-97d3519e2534 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/allocations/1d94ebcb-f724-4485-9dce-a81781307c8e GET: /v1/allocations/1d94ebcb-f724-4485-9dce-a81781307c8e {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f68962de-3d10-40f6-9e00-9b69bc17415b X-Openstack-Ironic-Api-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 1d94ebcb-f724-4485-9dce-a81781307c8e could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/allocations/1bb70942-364f-460b-99fa-3ca1bca7ea81 PATCH: /v1/allocations/1bb70942-364f-460b-99fa-3ca1bca7ea81 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2f5f7aa3-9c41-46de-bc14-c2ebb0855bb6 X-Openstack-Ironic-Api-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 1bb70942-364f-460b-99fa-3ca1bca7ea81 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/allocations/9fab107c-f39e-4f0d-9f4f-e59f2ac57353 PATCH: /v1/allocations/9fab107c-f39e-4f0d-9f4f-e59f2ac57353 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-72db59e2-487a-4c1b-8f34-39b01ff16175 X-Openstack-Ironic-Api-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 9fab107c-f39e-4f0d-9f4f-e59f2ac57353 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/allocations/d36bb017-4a6a-4d41-aef1-bb234e4d2df0 PATCH: /v1/allocations/d36bb017-4a6a-4d41-aef1-bb234e4d2df0 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f7a2ef9f-0bef-4633-bb0b-84eaf00b88c9 X-Openstack-Ironic-Api-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 d36bb017-4a6a-4d41-aef1-bb234e4d2df0 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/allocations/fa77ed5c-285c-4bbd-9d50-160665215a6e DELETE: /v1/allocations/fa77ed5c-285c-4bbd-9d50-160665215a6e GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4fdb1fca-f207-41c6-99d5-a9b37012a21f X-Openstack-Ironic-Api-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 fa77ed5c-285c-4bbd-9d50-160665215a6e could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/allocations/9e04f08a-2ea1-4b02-9f07-2f2ecb8aa65a DELETE: /v1/allocations/9e04f08a-2ea1-4b02-9f07-2f2ecb8aa65a GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-eab58b13-aec1-4e02-9550-e814a38e656e X-Openstack-Ironic-Api-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 9e04f08a-2ea1-4b02-9f07-2f2ecb8aa65a could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/allocations/5e512be2-6da5-4411-8d64-604d2438abd5 DELETE: /v1/allocations/5e512be2-6da5-4411-8d64-604d2438abd5 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-08513242-0188-4b2c-85b3-d62bbffa357d X-Openstack-Ironic-Api-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 5e512be2-6da5-4411-8d64-604d2438abd5 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation 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.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.db.sqlalchemy.test_models.TestGetClass.test_get_class ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class ... 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.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad ironic.tests.unit.db.sqlalchemy.test_models.TestGetClass.test_get_class_bad ... ok ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-46f57326-285e-4495-b566-f27897cc824d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-68cca638-9c6d-4380-ba0f-7c582c3c4cbf 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-68cca638-9c6d-4380-ba0f-7c582c3c4cbf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/portgroups GET: /v1/portgroups {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-912a682f-44ea-4d7c-8edc-2c73207fcdad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-912a682f-44ea-4d7c-8edc-2c73207fcdad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-94d03bfa-4142-4af3-9cdf-ae4257687973 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-94d03bfa-4142-4af3-9cdf-ae4257687973 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} API ACL Testing Path post /v1/portgroups POST: /v1/portgroups {'node_uuid': '18a552fb-dcd2-43bf-9302-e4c93287be11'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/263b994d-f582-4a4c-8085-43bf59c5ecb6 Openstack-Request-Id: req-66f757f1-e0ce-4160-944e-b695598081b0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "263b994d-f582-4a4c-8085-43bf59c5ecb6", "created_at": "2024-01-06T13:36:54.995984+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/263b994d-f582-4a4c-8085-43bf59c5ecb6", "rel": "self"}, {"href": "http://localhost/portgroups/263b994d-f582-4a4c-8085-43bf59c5ecb6", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/263b994d-f582-4a4c-8085-43bf59c5ecb6/ports", "rel": "self"}, {"href": "http://localhost/portgroups/263b994d-f582-4a4c-8085-43bf59c5ecb6/ports", "rel": "bookmark"}]} ACL Test GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/263b994d-f582-4a4c-8085-43bf59c5ecb6 Openstack-Request-Id: req-66f757f1-e0ce-4160-944e-b695598081b0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "263b994d-f582-4a4c-8085-43bf59c5ecb6", "created_at": "2024-01-06T13:36:54.995984+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/263b994d-f582-4a4c-8085-43bf59c5ecb6", "rel": "self"}, {"href": "http://localhost/portgroups/263b994d-f582-4a4c-8085-43bf59c5ecb6", "rel": "bookmark"}], "node_uuid": "18a552fb-dcd2-43bf-9302-e4c93287be11", "ports": [{"href": "http://localhost/v1/portgroups/263b994d-f582-4a4c-8085-43bf59c5ecb6/ports", "rel": "self"}, {"href": "http://localhost/portgroups/263b994d-f582-4a4c-8085-43bf59c5ecb6/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-65fa6436-5d5e-42a9-a248-e76bb4ffa410 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-65fa6436-5d5e-42a9-a248-e76bb4ffa410 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ced9bb03-594f-4a4a-adf3-83af66340fd0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-ced9bb03-594f-4a4a-adf3-83af66340fd0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} API ACL Testing Path get /v1/portgroups/detail GET: /v1/portgroups/detail {} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_118_portgroups_detail_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_118_portgroups_detail_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_262_nodes_allocation_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_262_nodes_allocation_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_255_allocations_allocation_id_patch_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_255_allocations_allocation_id_patch_member ... ok ironic.tests.unit.api.test_acl.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.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.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.TestRBACScopedRequests.test_system_scoped_256_allocations_allocation_id_patch_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_256_allocations_allocation_id_patch_reader ... ok ironic.tests.unit.db.test_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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_120_portgroups_detail_get_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_120_portgroups_detail_get_observer ... ok ironic.tests.unit.api.test_acl.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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ea7beb7-91b7-40d9-a5f3-6f038bc606ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "e8b4f9b8-c49d-4c84-9e7b-79129210dc37", "created_at": "2024-01-06T13:36:55.544732+00:00", "updated_at": "2024-01-06T13:36:55.582731+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/e8b4f9b8-c49d-4c84-9e7b-79129210dc37", "rel": "self"}, {"href": "http://localhost/allocations/e8b4f9b8-c49d-4c84-9e7b-79129210dc37", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9ea7beb7-91b7-40d9-a5f3-6f038bc606ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "e8b4f9b8-c49d-4c84-9e7b-79129210dc37", "created_at": "2024-01-06T13:36:55.544732+00:00", "updated_at": "2024-01-06T13:36:55.582731+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/e8b4f9b8-c49d-4c84-9e7b-79129210dc37", "rel": "self"}, {"href": "http://localhost/allocations/e8b4f9b8-c49d-4c84-9e7b-79129210dc37", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} API ACL Testing Path get /v1/allocations/a9723ade-33da-4319-a3c4-c1c1f6e406f8 GET: /v1/allocations/a9723ade-33da-4319-a3c4-c1c1f6e406f8 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-de028749-0a85-4c71-b068-dcca37b7043d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "a9723ade-33da-4319-a3c4-c1c1f6e406f8", "created_at": "2024-01-06T13:36:55.973140+00:00", "updated_at": "2024-01-06T13:36:56.024157+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/a9723ade-33da-4319-a3c4-c1c1f6e406f8", "rel": "self"}, {"href": "http://localhost/allocations/a9723ade-33da-4319-a3c4-c1c1f6e406f8", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-de028749-0a85-4c71-b068-dcca37b7043d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "a9723ade-33da-4319-a3c4-c1c1f6e406f8", "created_at": "2024-01-06T13:36:55.973140+00:00", "updated_at": "2024-01-06T13:36:56.024157+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/a9723ade-33da-4319-a3c4-c1c1f6e406f8", "rel": "self"}, {"href": "http://localhost/allocations/a9723ade-33da-4319-a3c4-c1c1f6e406f8", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} API ACL Testing Path patch /v1/allocations/c8aa1ba9-7a43-48c4-b0da-78c26e2cf5bb PATCH: /v1/allocations/c8aa1ba9-7a43-48c4-b0da-78c26e2cf5bb [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9bdca22b-38b1-493b-925f-a32a7689412d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "c8aa1ba9-7a43-48c4-b0da-78c26e2cf5bb", "created_at": "2024-01-06T13:36:56.440827+00:00", "updated_at": "2024-01-06T13:36:56.811610+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/c8aa1ba9-7a43-48c4-b0da-78c26e2cf5bb", "rel": "self"}, {"href": "http://localhost/allocations/c8aa1ba9-7a43-48c4-b0da-78c26e2cf5bb", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9bdca22b-38b1-493b-925f-a32a7689412d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "c8aa1ba9-7a43-48c4-b0da-78c26e2cf5bb", "created_at": "2024-01-06T13:36:56.440827+00:00", "updated_at": "2024-01-06T13:36:56.811610+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/c8aa1ba9-7a43-48c4-b0da-78c26e2cf5bb", "rel": "self"}, {"href": "http://localhost/allocations/c8aa1ba9-7a43-48c4-b0da-78c26e2cf5bb", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} API ACL Testing Path patch /v1/allocations/18dba2fb-5a86-400d-8e49-c010d4962ce3 PATCH: /v1/allocations/18dba2fb-5a86-400d-8e49-c010d4962ce3 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8715d29-1d4a-4480-98cb-62ceb171a789 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "18dba2fb-5a86-400d-8e49-c010d4962ce3", "created_at": "2024-01-06T13:36:57.172655+00:00", "updated_at": "2024-01-06T13:36:57.541519+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/18dba2fb-5a86-400d-8e49-c010d4962ce3", "rel": "self"}, {"href": "http://localhost/allocations/18dba2fb-5a86-400d-8e49-c010d4962ce3", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a8715d29-1d4a-4480-98cb-62ceb171a789 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "18dba2fb-5a86-400d-8e49-c010d4962ce3", "created_at": "2024-01-06T13:36:57.172655+00:00", "updated_at": "2024-01-06T13:36:57.541519+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/18dba2fb-5a86-400d-8e49-c010d4962ce3", "rel": "self"}, {"href": "http://localhost/allocations/18dba2fb-5a86-400d-8e49-c010d4962ce3", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} API ACL Testing Path patch /v1/allocations/e9bea9f3-9994-4d0e-8a9a-50b7df4bd73a PATCH: /v1/allocations/e9bea9f3-9994-4d0e-8a9a-50b7df4bd73a [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ac534984-2774-49c8-a822-e93f8edf0221 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-ac534984-2774-49c8-a822-e93f8edf0221 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_121_portgroups_portgroup_ident_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_121_portgroups_portgroup_ident_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_265_nodes_allocation_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_265_nodes_allocation_delete_member ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_active_hardware_type_dict_one_host_many_ht ... ok ironic.tests.unit.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.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.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.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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d4445321-33f9-4163-9430-fa9a6fb25509 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-06T13:36:56.745719+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-d4445321-33f9-4163-9430-fa9a6fb25509 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-06T13:36:56.745719+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-289f05b4-3d7f-45de-934d-850bd0bcfd08 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-289f05b4-3d7f-45de-934d-850bd0bcfd08 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:list\", \"debuginfo\": null}"} API ACL Testing Path get /v1/portgroups/detail GET: /v1/portgroups/detail {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a7d78f01-8ecb-42c9-a4c1-350402655f48 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-06T13:36:58.140003+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-a7d78f01-8ecb-42c9-a4c1-350402655f48 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-06T13:36:58.140003+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-0f33301e-caf9-406a-b6ac-4a96db31e3b4 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-06T13:36:58.912181+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-0f33301e-caf9-406a-b6ac-4a96db31e3b4 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-06T13:36:58.912181+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-0645b864-6905-4bc0-a86b-2507f459fd50 X-Openstack-Ironic-Api-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.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.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.db.test_conductor.DbConductorTestCase.test_get_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_conductor ... 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_123_portgroups_portgroup_ident_get_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_123_portgroups_portgroup_ident_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_267_deploy_templates_post_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_267_deploy_templates_post_admin ... ok ironic.tests.unit.api.test_acl.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.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_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_inactive_conductor_with_online_true ... ok ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_offline_conductors ... ok ironic.tests.unit.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.db.test_conductor.DbConductorTestCase.test_get_online_conductors ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_get_online_conductors ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_124_portgroups_portgroup_ident_patch_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_124_portgroups_portgroup_ident_patch_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_268_deploy_templates_post_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_268_deploy_templates_post_member ... 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.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.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.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.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.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.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_hardware_interfaces_duplicate ... ok API ACL Testing Path delete /v1/allocations/35663b54-55f4-47e9-b242-5fa21bff356a DELETE: /v1/allocations/35663b54-55f4-47e9-b242-5fa21bff356a GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-acf80385-d41f-4471-96b4-72cf4193a950 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-acf80385-d41f-4471-96b4-72cf4193a950 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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/5e5b210e-3f9e-4189-882f-93fc7cc9b7cc DELETE: /v1/allocations/5e5b210e-3f9e-4189-882f-93fc7cc9b7cc GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bc08c423-890a-480b-9690-4af6f366db17 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bc08c423-890a-480b-9690-4af6f366db17 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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/497c57d4-ce65-482e-8629-0e88384085b6 DELETE: /v1/allocations/497c57d4-ce65-482e-8629-0e88384085b6 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-56944f0c-eb6c-4f63-9e05-86fb35874fd6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-56944f0c-eb6c-4f63-9e05-86fb35874fd6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-2f1adb1f-efbe-45db-8234-ed9d18b5e335 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "33f7864a-5dcf-46db-a58d-a98c591166b8", "created_at": "2024-01-06T13:37:00.664447+00:00", "updated_at": "2024-01-06T13:37:00.712014+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/33f7864a-5dcf-46db-a58d-a98c591166b8", "rel": "self"}, {"href": "http://localhost/allocations/33f7864a-5dcf-46db-a58d-a98c591166b8", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2f1adb1f-efbe-45db-8234-ed9d18b5e335 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "33f7864a-5dcf-46db-a58d-a98c591166b8", "created_at": "2024-01-06T13:37:00.664447+00:00", "updated_at": "2024-01-06T13:37:00.712014+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/33f7864a-5dcf-46db-a58d-a98c591166b8", "rel": "self"}, {"href": "http://localhost/allocations/33f7864a-5dcf-46db-a58d-a98c591166b8", "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-b27de86b-b9fa-4c43-8a9b-f3811da15d14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "83f840a8-45e3-4cf8-b143-6180eafc0fc5", "created_at": "2024-01-06T13:37:01.632532+00:00", "updated_at": "2024-01-06T13:37:01.680718+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/83f840a8-45e3-4cf8-b143-6180eafc0fc5", "rel": "self"}, {"href": "http://localhost/allocations/83f840a8-45e3-4cf8-b143-6180eafc0fc5", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b27de86b-b9fa-4c43-8a9b-f3811da15d14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "83f840a8-45e3-4cf8-b143-6180eafc0fc5", "created_at": "2024-01-06T13:37:01.632532+00:00", "updated_at": "2024-01-06T13:37:01.680718+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/83f840a8-45e3-4cf8-b143-6180eafc0fc5", "rel": "self"}, {"href": "http://localhost/allocations/83f840a8-45e3-4cf8-b143-6180eafc0fc5", "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-2d043367-f532-4730-acca-fad1cc9df641 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "23d23540-c4e1-4240-8969-8fda3f7ad0a2", "created_at": "2024-01-06T13:37:02.380760+00:00", "updated_at": "2024-01-06T13:37:02.432663+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/23d23540-c4e1-4240-8969-8fda3f7ad0a2", "rel": "self"}, {"href": "http://localhost/allocations/23d23540-c4e1-4240-8969-8fda3f7ad0a2", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2d043367-f532-4730-acca-fad1cc9df641 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "23d23540-c4e1-4240-8969-8fda3f7ad0a2", "created_at": "2024-01-06T13:37:02.380760+00:00", "updated_at": "2024-01-06T13:37:02.432663+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/23d23540-c4e1-4240-8969-8fda3f7ad0a2", "rel": "self"}, {"href": "http://localhost/allocations/23d23540-c4e1-4240-8969-8fda3f7ad0a2", "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.db.test_conductor.DbConductorTestCase.test_register_conductor_override ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_register_conductor_override ... 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.db.test_conductor.DbConductorTestCase.test_touch_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_conductor ... 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.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.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.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.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.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_touch_offline_conductor ... 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.test_conductor.DbConductorTestCase.test_unregister_conductor ironic.tests.unit.db.test_conductor.DbConductorTestCase.test_unregister_conductor ... 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.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_272_deploy_templates_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_272_deploy_templates_get_observer ... ok ironic.tests.unit.api.test_acl.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.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.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.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_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 ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0645b864-6905-4bc0-a86b-2507f459fd50 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-742d2aac-a320-4889-ad4d-983ec94335d8 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-06T13:37:00.542168+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-742d2aac-a320-4889-ad4d-983ec94335d8 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-06T13:37:00.542168+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-d6267431-2b66-497a-bbf1-c45c35c74771 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d6267431-2b66-497a-bbf1-c45c35c74771 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-ea2e9f6e-d551-4768-9b0e-937f43f9b745 X-Openstack-Ironic-Api-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-ea2e9f6e-d551-4768-9b0e-937f43f9b745 X-Openstack-Ironic-Api-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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2736b075-9b78-45cc-badf-b3553fd11fed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-2736b075-9b78-45cc-badf-b3553fd11fed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-29ea3896-f569-456a-84d1-7c81bfa70f54 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-29ea3896-f569-456a-84d1-7c81bfa70f54 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-2a34021b-a3a2-40d9-80fb-f1f553723f7b X-Openstack-Ironic-Api-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-2a34021b-a3a2-40d9-80fb-f1f553723f7b X-Openstack-Ironic-Api-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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9df3a486-c856-43b2-bfbf-e79c1defecc9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id_empty ironic.tests.unit.db.test_node_history.DBNodeHistoryTestCase.test_get_history_by_node_id_empty ... ok ironic.tests.unit.api.test_acl.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.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 GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b3fb90b6-0699-48d3-a4e8-5bca4181e3d2 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-94958b32-720f-4547-a03a-728ca1642e59 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ede2e2af-309f-4161-878f-a4a93f3537ec X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d102f34d-89f0-4c8c-b8a3-e9546c8dac74 X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-6211389d-7942-4b1e-a3dd-d1423291551d X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-1bdf0087-a4ab-46a3-bb8b-d34a76549430 X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-702e6dd8-4770-4b80-a324-75952a54ea7a X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-5c823a91-8e14-4045-9a99-208c6f90f3b0 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-dc38a740-7492-4cd0-9506-fa9078390fbd X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-7fea5c83-f4fe-4877-a55d-7e51f651ae04 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-60b176e9-30a6-4043-bded-d3c0d1c90160 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-41eb0156-434e-4fb0-94b7-d5ed85bbe65c X-Openstack-Ironic-Api-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/85cee21b-a401-4fc6-bd55-07bcb3eb6406 GET: /v1/deploy_templates/85cee21b-a401-4fc6-bd55-07bcb3eb6406 {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e4cb9ac4-48a5-4bca-86c1-f3b4db887e7c X-Openstack-Ironic-Api-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/52d1d2d2-39de-4886-8946-124f7d4909bf GET: /v1/deploy_templates/52d1d2d2-39de-4886-8946-124f7d4909bf {} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_274_deploy_templates_deploy_template_id_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_130_nodes_portgroups_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_130_nodes_portgroups_get_admin ... 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.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.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_275_deploy_templates_deploy_template_id_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_275_deploy_templates_deploy_template_id_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_131_nodes_portgroups_get_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_131_nodes_portgroups_get_member ... 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_269_deploy_templates_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_269_deploy_templates_get_admin ... 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.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.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.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.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.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 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-6bd993ef-4f56-4258-b43a-75a545aa6292 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6bd993ef-4f56-4258-b43a-75a545aa6292 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9c569b74-67e7-457e-9071-759e420dbf5f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9c569b74-67e7-457e-9071-759e420dbf5f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation DELETE: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5f9392b8-e069-436d-9b00-f4efa469ed60 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-5f9392b8-e069-436d-9b00-f4efa469ed60 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}]} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/9e9a2d9a-0eb8-4d1a-b518-88177649586a Openstack-Request-Id: req-12eab5ae-7609-42c8-affd-37ba91335151 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "9e9a2d9a-0eb8-4d1a-b518-88177649586a", "created_at": "2024-01-06T13:37:05.959805+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9e9a2d9a-0eb8-4d1a-b518-88177649586a", "rel": "self"}, {"href": "http://localhost/deploy_templates/9e9a2d9a-0eb8-4d1a-b518-88177649586a", "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/9e9a2d9a-0eb8-4d1a-b518-88177649586a Openstack-Request-Id: req-12eab5ae-7609-42c8-affd-37ba91335151 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "9e9a2d9a-0eb8-4d1a-b518-88177649586a", "created_at": "2024-01-06T13:37:05.959805+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/9e9a2d9a-0eb8-4d1a-b518-88177649586a", "rel": "self"}, {"href": "http://localhost/deploy_templates/9e9a2d9a-0eb8-4d1a-b518-88177649586a", "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-33327cdc-5aab-4552-bb1a-c9e012ddf326 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-33327cdc-5aab-4552-bb1a-c9e012ddf326 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}]} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-151e396c-1e90-49df-9826-6569cca518bb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-151e396c-1e90-49df-9826-6569cca518bb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} API ACL Testing Path get /v1/deploy_templates GET: /v1/deploy_templates {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6403b28f-90b9-4113-b192-7dafabf04f94 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": "4052e244-6725-47ec-8eec-516557d9797a", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/4052e244-6725-47ec-8eec-516557d9797a", "rel": "self"}, {"href": "http://localhost/deploy_templates/4052e244-6725-47ec-8eec-516557d9797a", "rel": "bookmark"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6403b28f-90b9-4113-b192-7dafabf04f94 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": "4052e244-6725-47ec-8eec-516557d9797a", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/4052e244-6725-47ec-8eec-516557d9797a", "rel": "self"}, {"href": "http://localhost/deploy_templates/4052e244-6725-47ec-8eec-516557d9797a", "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.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.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.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_delete_node_tag_not_found ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_278_deploy_templates_deploy_template_id_patch_observer ... ok ironic.tests.unit.api.test_acl.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.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_by_node_id ... ok ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_empty ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_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.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.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_get_node_tags_node_not_exist ... ok ironic.tests.unit.api.test_acl.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.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.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_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_node_tag_node_not_exist ... ok ironic.tests.unit.api.test_acl.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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9df3a486-c856-43b2-bfbf-e79c1defecc9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-e28b7291-c5dd-4097-aec7-22bf84c94484 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-e28b7291-c5dd-4097-aec7-22bf84c94484 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f2c5630b-f676-45e8-b8bb-51190cb14c03 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-f2c5630b-f676-45e8-b8bb-51190cb14c03 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-866799c5-a3ea-44a9-a832-4c82dde72727 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-866799c5-a3ea-44a9-a832-4c82dde72727 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/portgroups/detail {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dcf77cb4-d8c9-4969-aa63-a9e06908a18c 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-06T13:37:09.480872+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-dcf77cb4-d8c9-4969-aa63-a9e06908a18c 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-06T13:37:09.480872+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-958e40b6-9028-4236-8137-fff48c456bcb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-958e40b6-9028-4236-8137-fff48c456bcb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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.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.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_set_node_tags ... ok ironic.tests.unit.api.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_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.TestRBACScoped.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_281_deploy_templates_deploy_template_id_delete_observer ... ok ironic.tests.unit.api.test_acl.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.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.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags ironic.tests.unit.db.test_node_tags.DbNodeTagTestCase.test_unset_empty_node_tags ... ok ironic.tests.unit.api.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7fd0fd93-3095-45e8-9e4c-21ad46ca9f1c 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": "06f796e2-fcc6-4dcf-aaf2-082f11bb16e7", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/06f796e2-fcc6-4dcf-aaf2-082f11bb16e7", "rel": "self"}, {"href": "http://localhost/deploy_templates/06f796e2-fcc6-4dcf-aaf2-082f11bb16e7", "rel": "bookmark"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7fd0fd93-3095-45e8-9e4c-21ad46ca9f1c 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": "06f796e2-fcc6-4dcf-aaf2-082f11bb16e7", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/06f796e2-fcc6-4dcf-aaf2-082f11bb16e7", "rel": "self"}, {"href": "http://localhost/deploy_templates/06f796e2-fcc6-4dcf-aaf2-082f11bb16e7", "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-c9c37954-e95a-4c5e-bf92-758edec8319a 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": "c6068afc-7c74-4c00-ac94-b88b9365d8b1", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/c6068afc-7c74-4c00-ac94-b88b9365d8b1", "rel": "self"}, {"href": "http://localhost/deploy_templates/c6068afc-7c74-4c00-ac94-b88b9365d8b1", "rel": "bookmark"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c9c37954-e95a-4c5e-bf92-758edec8319a 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": "c6068afc-7c74-4c00-ac94-b88b9365d8b1", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/c6068afc-7c74-4c00-ac94-b88b9365d8b1", "rel": "self"}, {"href": "http://localhost/deploy_templates/c6068afc-7c74-4c00-ac94-b88b9365d8b1", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/deploy_templates/c32dcdc5-6101-4206-ab54-51dad6584bc1 GET: /v1/deploy_templates/c32dcdc5-6101-4206-ab54-51dad6584bc1 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-253c2669-2b38-4dea-8024-367ec20354f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "c32dcdc5-6101-4206-ab54-51dad6584bc1", "created_at": "2024-01-06T13:37:09.979544+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c32dcdc5-6101-4206-ab54-51dad6584bc1", "rel": "self"}, {"href": "http://localhost/deploy_templates/c32dcdc5-6101-4206-ab54-51dad6584bc1", "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-253c2669-2b38-4dea-8024-367ec20354f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "c32dcdc5-6101-4206-ab54-51dad6584bc1", "created_at": "2024-01-06T13:37:09.979544+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/c32dcdc5-6101-4206-ab54-51dad6584bc1", "rel": "self"}, {"href": "http://localhost/deploy_templates/c32dcdc5-6101-4206-ab54-51dad6584bc1", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} API ACL Testing Path get /v1/deploy_templates/f8035774-eaa1-4c81-ad8f-cdd3ac293294 GET: /v1/deploy_templates/f8035774-eaa1-4c81-ad8f-cdd3ac293294 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-15b0639a-375b-4e38-9f3f-643baf1e0065 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "f8035774-eaa1-4c81-ad8f-cdd3ac293294", "created_at": "2024-01-06T13:37:10.549680+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f8035774-eaa1-4c81-ad8f-cdd3ac293294", "rel": "self"}, {"href": "http://localhost/deploy_templates/f8035774-eaa1-4c81-ad8f-cdd3ac293294", "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-15b0639a-375b-4e38-9f3f-643baf1e0065 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "f8035774-eaa1-4c81-ad8f-cdd3ac293294", "created_at": "2024-01-06T13:37:10.549680+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/f8035774-eaa1-4c81-ad8f-cdd3ac293294", "rel": "self"}, {"href": "http://localhost/deploy_templates/f8035774-eaa1-4c81-ad8f-cdd3ac293294", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} API ACL Testing Path get /v1/deploy_templates/dd8841be-46cd-4d57-8edc-578c8f2ec721 GET: /v1/deploy_templates/dd8841be-46cd-4d57-8edc-578c8f2ec721 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-408ac4fd-80a0-4bbf-acfe-192057d88475 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "dd8841be-46cd-4d57-8edc-578c8f2ec721", "created_at": "2024-01-06T13:37:11.358223+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/dd8841be-46cd-4d57-8edc-578c8f2ec721", "rel": "self"}, {"href": "http://localhost/deploy_templates/dd8841be-46cd-4d57-8edc-578c8f2ec721", "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-408ac4fd-80a0-4bbf-acfe-192057d88475 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "dd8841be-46cd-4d57-8edc-578c8f2ec721", "created_at": "2024-01-06T13:37:11.358223+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/dd8841be-46cd-4d57-8edc-578c8f2ec721", "rel": "self"}, {"href": "http://localhost/deploy_templates/dd8841be-46cd-4d57-8edc-578c8f2ec721", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} API ACL Testing Path patch /v1/deploy_templates/42dccf1e-e545-4b8a-a2d5-818897a96f97 PATCH: /v1/deploy_templates/42dccf1e-e545-4b8a-a2d5-818897a96f97 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0f229ec2-67e7-44ff-8cf6-16fac0699633 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "42dccf1e-e545-4b8a-a2d5-818897a96f97", "created_at": "2024-01-06T13:37:11.896577+00:00", "updated_at": "2024-01-06T13:37:12.219726+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/42dccf1e-e545-4b8a-a2d5-818897a96f97", "rel": "self"}, {"href": "http://localhost/deploy_templates/42dccf1e-e545-4b8a-a2d5-818897a96f97", "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_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_282_chassis_post_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_282_chassis_post_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 ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_276_deploy_templates_deploy_template_id_patch_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_276_deploy_templates_deploy_template_id_patch_member ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_138_ports_get_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_138_ports_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_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_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.api.test_acl.TestRBACScopedRequests.test_system_scoped_277_deploy_templates_deploy_template_id_patch_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_277_deploy_templates_deploy_template_id_patch_reader ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_140_ports_post_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_140_ports_post_member ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_285_chassis_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_285_chassis_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_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.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs ... ok ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_completed_with_errors ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__check_node_bios_jobs_completed_with_errors ... ok ironic.tests.unit.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.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.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.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.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.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 GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-78be2e65-f4c6-4f6d-ba6c-8c26896ad61b X-Openstack-Ironic-Api-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/5e7b922f-144c-404e-a951-fc44a4d36f91 GET: /v1/deploy_templates/5e7b922f-144c-404e-a951-fc44a4d36f91 {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-e80d9da9-8a6f-4b94-a9e7-3d059fc77e33 X-Openstack-Ironic-Api-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/885fa11a-b64a-485a-81a7-de0ac9bd0d37 PATCH: /v1/deploy_templates/885fa11a-b64a-485a-81a7-de0ac9bd0d37 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2d60835b-e7c8-4f44-8651-67fc0da37965 X-Openstack-Ironic-Api-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/0667faf0-37f5-4664-ae8e-b3b2b72b2b05 PATCH: /v1/deploy_templates/0667faf0-37f5-4664-ae8e-b3b2b72b2b05 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-37cba139-f761-4596-b7ed-2fc69e4bdec5 X-Openstack-Ironic-Api-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/b033236d-5270-453e-871f-bda4e7b88e14 PATCH: /v1/deploy_templates/b033236d-5270-453e-871f-bda4e7b88e14 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-eb337eb0-9128-4c7e-b386-57cb4f2c9c5e X-Openstack-Ironic-Api-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/0b56f7a9-b274-4d83-8515-a36fdb953d34 DELETE: /v1/deploy_templates/0b56f7a9-b274-4d83-8515-a36fdb953d34 GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-fb699378-73d0-4fcb-b673-601fa4998ca0 X-Openstack-Ironic-Api-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/2799e0bd-cbdd-4b79-8622-b103c5fdaaaf DELETE: /v1/deploy_templates/2799e0bd-cbdd-4b79-8622-b103c5fdaaaf GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-389e705a-b3d2-4aca-ac4e-bf8f48093f5f X-Openstack-Ironic-Api-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/f10916bd-9b28-42b4-ad40-81b553d1ffa0 DELETE: /v1/deploy_templates/f10916bd-9b28-42b4-ad40-81b553d1ffa0 GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-824778b6-37e3-4b88-a705-26bbd1413560 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/chassis POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5c9ddb6b-6162-4e90-90f9-95b6c5b5e59e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/chassis POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-40aee4ea-6ee1-457b-9345-0aeafb25ffc9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/chassis POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0a7ad2ee-dddb-4428-bc4b-e1ed7db06ad5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis GET: /v1/chassis {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-d585237d-dc04-4fe4-a32e-91bd98616324 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis GET: /v1/chassis {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-63b830ff-2462-4f25-800b-af52fd43c4ff X-Openstack-Ironic-Api-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 {} 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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-481b3be8-b688-4a1c-ab5d-fb7b63b96d2c 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-06T13:37:10.638225+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-481b3be8-b688-4a1c-ab5d-fb7b63b96d2c 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-06T13:37:10.638225+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-22c02ff4-42c9-483e-ae47-84954096a270 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-22c02ff4-42c9-483e-ae47-84954096a270 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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-801e6155-6bba-4e7d-83f6-414bd6b649f4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-801e6155-6bba-4e7d-83f6-414bd6b649f4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-18989c6e-aee6-410f-aeae-6cb3fa7cc528 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-18989c6e-aee6-410f-aeae-6cb3fa7cc528 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 Content-Type: application/json Openstack-Request-Id: req-fc498c0b-9b69-4845-a675-bb8d384c0c7d X-Openstack-Ironic-Api-Maximum-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-fc498c0b-9b69-4845-a675-bb8d384c0c7d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 68a552fb-dcd2-43bf-9302-e4c93287be16 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/ports POST: /v1/ports {'node_uuid': '68a552fb-dcd2-43bf-9302-e4c93287be16', 'address': '00:01:02:03:04:05'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-2709250c-a961-4401-b3ba-c75f5d717299 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-2709250c-a961-4401-b3ba-c75f5d717299 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-525f23c9-5f7c-4342-aeca-374cc219c27c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-525f23c9-5f7c-4342-aeca-374cc219c27c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status ... ok ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status_no_config_jobs ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test__query_bios_config_job_status_no_config_jobs ... ok ironic.tests.unit.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.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_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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0f229ec2-67e7-44ff-8cf6-16fac0699633 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "42dccf1e-e545-4b8a-a2d5-818897a96f97", "created_at": "2024-01-06T13:37:11.896577+00:00", "updated_at": "2024-01-06T13:37:12.219726+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/42dccf1e-e545-4b8a-a2d5-818897a96f97", "rel": "self"}, {"href": "http://localhost/deploy_templates/42dccf1e-e545-4b8a-a2d5-818897a96f97", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} API ACL Testing Path patch /v1/deploy_templates/a27bc30a-2074-4d89-95c6-cd703e2872ca PATCH: /v1/deploy_templates/a27bc30a-2074-4d89-95c6-cd703e2872ca [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-db114435-21e3-45fb-a125-48da511c3f13 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-db114435-21e3-45fb-a125-48da511c3f13 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/b561973b-26a3-439c-a129-96004a4ac35a PATCH: /v1/deploy_templates/b561973b-26a3-439c-a129-96004a4ac35a [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-96448f8b-b265-403f-b5d9-7ecf3e62dc49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-96448f8b-b265-403f-b5d9-7ecf3e62dc49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/d3e038c6-ba09-422e-a11a-3175874eaf90 DELETE: /v1/deploy_templates/d3e038c6-ba09-422e-a11a-3175874eaf90 GOT:Response: 204 No Content Openstack-Request-Id: req-38473ba0-180b-44e9-b523-a0ac5974ca22 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-38473ba0-180b-44e9-b523-a0ac5974ca22 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/f8b40553-6a7a-4166-9e82-ea81a0878aa0 DELETE: /v1/deploy_templates/f8b40553-6a7a-4166-9e82-ea81a0878aa0 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-bc27089e-64ec-4bfa-a332-8f75bb93819f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-bc27089e-64ec-4bfa-a332-8f75bb93819f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/c7c2e920-68d9-455d-8dc5-d0f9d88fd9fa DELETE: /v1/deploy_templates/c7c2e920-68d9-455d-8dc5-d0f9d88fd9fa GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-50e63a4f-d45a-4547-b43b-0d2ec5e19cc7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-50e63a4f-d45a-4547-b43b-0d2ec5e19cc7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} API ACL Testing Path post /v1/chassis POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/c3ed1633-2e4b-4dbe-8d8e-7d2b610a4fc4 Openstack-Request-Id: req-6f5c13e1-7969-4b7f-ad42-ae83e99ae6a0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "c3ed1633-2e4b-4dbe-8d8e-7d2b610a4fc4", "created_at": "2024-01-06T13:37:15.886890+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/c3ed1633-2e4b-4dbe-8d8e-7d2b610a4fc4", "rel": "self"}, {"href": "http://localhost/chassis/c3ed1633-2e4b-4dbe-8d8e-7d2b610a4fc4", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/c3ed1633-2e4b-4dbe-8d8e-7d2b610a4fc4/nodes", "rel": "self"}, {"href": "http://localhost/chassis/c3ed1633-2e4b-4dbe-8d8e-7d2b610a4fc4/nodes", "rel": "bookmark"}]]} ACL Test GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/c3ed1633-2e4b-4dbe-8d8e-7d2b610a4fc4 Openstack-Request-Id: req-6f5c13e1-7969-4b7f-ad42-ae83e99ae6a0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "c3ed1633-2e4b-4dbe-8d8e-7d2b610a4fc4", "created_at": "2024-01-06T13:37:15.886890+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/c3ed1633-2e4b-4dbe-8d8e-7d2b610a4fc4", "rel": "self"}, {"href": "http://localhost/chassis/c3ed1633-2e4b-4dbe-8d8e-7d2b610a4fc4", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/c3ed1633-2e4b-4dbe-8d8e-7d2b610a4fc4/nodes", "rel": "self"}, {"href": "http://localhost/chassis/c3ed1633-2e4b-4dbe-8d8e-7d2b610a4fc4/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-22c482e2-f0c1-4e49-8c61-15fbe34f8364 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_282_chassis_post_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_282_chassis_post_member ... ok ironic.tests.unit.api.test_acl.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.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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_144_ports_detail_get_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_144_ports_detail_get_observer ... ok ironic.tests.unit.api.test_acl.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_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.test_acl.TestRBACScopedRequests.test_system_scoped_284_chassis_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_284_chassis_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_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_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.TestRBACScoped.test_rbac_legacy_290_chassis_detail_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_290_chassis_detail_get_observer ... ok ironic.tests.unit.api.test_acl.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.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.TestRBACModelBeforeScopes.test_rbac_legacy_146_ports_port_id_get_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_146_ports_port_id_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_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_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.TestRBACScopedRequests.test_system_scoped_286_chassis_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_286_chassis_get_reader ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7f56a832-537f-43ef-9397-80b4de1a7930 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-06T13:37:15.751824+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-7f56a832-537f-43ef-9397-80b4de1a7930 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-06T13:37:15.751824+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-e6d253c8-03f8-4c21-b822-5c23b19a2676 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:list\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e6d253c8-03f8-4c21-b822-5c23b19a2676 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ab8b9b09-e8c5-46fb-8237-442bad5010e1 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-06T13:37:16.978881+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-ab8b9b09-e8c5-46fb-8237-442bad5010e1 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-06T13:37:16.978881+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-c624d3d9-89ce-451d-a091-0184461ac613 X-Openstack-Ironic-Api-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-06T13:37:17.866440+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-c624d3d9-89ce-451d-a091-0184461ac613 X-Openstack-Ironic-Api-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-06T13:37:17.866440+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-1d006692-a994-4ce7-97fa-6ee4f9cac7d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1d006692-a994-4ce7-97fa-6ee4f9cac7d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GET: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 {} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_147_ports_port_id_get_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_147_ports_port_id_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_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_bios.DracWSManBIOSConfigurationTestCase.test_cache_bios_settings_noop ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_cache_bios_settings_noop ... ok ironic.tests.unit.api.test_acl.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.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.TestRBACModelBeforeScopes.test_rbac_legacy_148_ports_port_id_patch_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_148_ports_port_id_patch_admin ... ok ironic.tests.unit.api.test_acl.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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-22c482e2-f0c1-4e49-8c61-15fbe34f8364 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/chassis POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a3ce779f-7db3-40d2-86ff-704ddbe9c742 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-a3ce779f-7db3-40d2-86ff-704ddbe9c742 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis GET: /v1/chassis {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-36b68d99-e67d-4282-91f5-dcfb789d88be 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-36b68d99-e67d-4282-91f5-dcfb789d88be X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/chassis GET: /v1/chassis {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-886fde0a-354e-479c-b696-2d17235dd0e6 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-886fde0a-354e-479c-b696-2d17235dd0e6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/chassis GET: /v1/chassis {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e95f7600-2511-413d-9123-bde4eebefc05 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-e95f7600-2511-413d-9123-bde4eebefc05 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-56195020-80c8-4176-a156-9eb348469950 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-06T13:37:19.892467+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-56195020-80c8-4176-a156-9eb348469950 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-06T13:37:19.892467+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-055954a7-065b-456a-ae2d-ef7851454f92 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-06T13:37:20.516616+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.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.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_149_ports_port_id_patch_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_149_ports_port_id_patch_member ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_289_chassis_detail_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_289_chassis_detail_get_reader ... 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.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_set_fail ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_factory_reset_set_fail ... ok ironic.tests.unit.api.test_acl.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.TestRBACScoped.test_rbac_legacy_295_chassis_chassis_id_patch_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_295_chassis_chassis_id_patch_member ... ok ironic.tests.unit.api.test_acl.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.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_get_properties ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_validate ironic.tests.unit.drivers.modules.drac.test_bios.DracWSManBIOSConfigurationTestCase.test_validate ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_291_chassis_chassis_id_get_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_291_chassis_chassis_id_get_member ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_with_ethernet_interfaces ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test__get_mac_address_with_ethernet_interfaces ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_296_chassis_chassis_id_patch_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_296_chassis_chassis_id_patch_observer ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_151_ports_port_id_delete_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_151_ports_port_id_delete_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_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_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.TestRBACModelBeforeScopes.test_rbac_legacy_152_ports_port_id_delete_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_152_ports_port_id_delete_member ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_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_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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-055954a7-065b-456a-ae2d-ef7851454f92 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-06T13:37:20.516616+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-726d7a46-aa64-48a1-a999-a8cc4acff55f 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-06T13:37:21.221802+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-726d7a46-aa64-48a1-a999-a8cc4acff55f 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-06T13:37:21.221802+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-343d839d-6f4b-4aad-8ecb-5141c50cc5fc 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-06T13:37:21.832423+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-343d839d-6f4b-4aad-8ecb-5141c50cc5fc 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-06T13:37:21.832423+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-078552ed-27ad-4c0b-8a8a-14262cfd66ec 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-06T13:37:22.656799+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-078552ed-27ad-4c0b-8a8a-14262cfd66ec 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-06T13:37:22.656799+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-47af5524-ed56-4c0a-ba82-3e97c8d915ae 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-06T13:37:23.056147+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-47af5524-ed56-4c0a-ba82-3e97c8d915ae 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-06T13:37:23.056147+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.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_153_ports_port_id_delete_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_153_ports_port_id_delete_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_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.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.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.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties ironic.tests.unit.drivers.modules.drac.test_inspect.DracRedfishInspectionTestCase.test_get_properties ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_299_chassis_chassis_id_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_299_chassis_chassis_id_delete_observer ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fb8097bd-d10b-4574-8b5b-683ef95396f6 X-Openstack-Ironic-Api-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-06T13:37:19.376604+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-fb8097bd-d10b-4574-8b5b-683ef95396f6 X-Openstack-Ironic-Api-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-06T13:37:19.376604+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-e6739cc5-d2d6-4a97-97ce-e6d3eb46c42c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e6739cc5-d2d6-4a97-97ce-e6d3eb46c42c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7648da46-84cf-480a-b863-86bfd7898199 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7648da46-84cf-480a-b863-86bfd7898199 X-Openstack-Ironic-Api-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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-debb0d08-e556-4060-a374-80e7d0968cac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-debb0d08-e556-4060-a374-80e7d0968cac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7e6c2518-d148-4e94-8716-4a9e5d8b1cfd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7e6c2518-d148-4e94-8716-4a9e5d8b1cfd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7bba9e90-a947-413a-9a03-119e832f2243 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7bba9e90-a947-413a-9a03-119e832f2243 X-Openstack-Ironic-Api-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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-846cddde-99c5-4314-8f9f-7ba530062f29 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-846cddde-99c5-4314-8f9f-7ba530062f29 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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 GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-9e1be943-325e-49a3-bdb7-e1135a200cf0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis/detail GET: /v1/chassis/detail {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3d0fbe1c-4b87-4cb6-83d1-5492ab4f4d53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis/detail GET: /v1/chassis/detail {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-56c67375-6556-4cd1-b001-62ac618907bb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis/detail GET: /v1/chassis/detail {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3f3a89ce-a325-40ad-8d5d-5f53290001f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1f08950a-ffca-4bd6-b2c8-144fca49427d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0caf1fd5-c0d5-4d9e-a376-61bba3c46593 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-93c349b6-2d2f-4836-9312-bade884658e7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-48d85bca-4b3c-4f1f-8844-79768f2dbd19 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1cef936f-8951-466c-8758-4d5eb86f591a X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-7a156ac7-8721-40bd-93cf-06304b1efcb9 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-586ab3a6-7097-465a-888b-09068ba85a9e X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a0e77d92-94a2-476f-acac-acb4a57052c9 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-92e7b06a-50d2-4589-a201-aab8742f7b86 X-Openstack-Ironic-Api-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 {} ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_300_node_history_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_300_node_history_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_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_296_chassis_chassis_id_delete_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_296_chassis_chassis_id_delete_admin ... ok ironic.tests.unit.api.test_acl.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.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.TestRBACModelBeforeScopes.test_rbac_legacy_156_nodes_ports_get_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_156_nodes_ports_get_observer ... ok ironic.tests.unit.api.test_acl.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_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_298_chassis_chassis_id_delete_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_298_chassis_chassis_id_delete_reader ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_157_nodes_ports_detail_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_157_nodes_ports_detail_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_303_node_history_get_entry_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_rbac_legacy_303_node_history_get_entry_admin ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_158_nodes_ports_detail_get_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_158_nodes_ports_detail_get_member ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3823ec5f-c19e-42e9-a1ed-af86ae0d3949 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-06T13:37:23.729928+00:00", "updated_at": "2024-01-06T13:37:23.897510+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-3823ec5f-c19e-42e9-a1ed-af86ae0d3949 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-06T13:37:23.729928+00:00", "updated_at": "2024-01-06T13:37:23.897510+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-45ba0092-3ff1-4b97-ac0c-c1bce91b64ba 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-06T13:37:24.417283+00:00", "updated_at": "2024-01-06T13:37:24.633251+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-45ba0092-3ff1-4b97-ac0c-c1bce91b64ba 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-06T13:37:24.417283+00:00", "updated_at": "2024-01-06T13:37:24.633251+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-3cadb52c-1591-4797-9fb9-040539097fc0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-3cadb52c-1591-4797-9fb9-040539097fc0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-17d58f77-8141-404c-89ef-144a54fe921f 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-17d58f77-8141-404c-89ef-144a54fe921f 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-e5b5e572-5344-4051-8d19-febc980d5e81 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-e5b5e572-5344-4051-8d19-febc980d5e81 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1b743910-0e4e-47b6-8d10-ef79299ffcd8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-1b743910-0e4e-47b6-8d10-ef79299ffcd8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-db3f99c8-241a-43d9-95a8-47d232203389 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": "73487df7-46ed-4a56-8d34-b97415925bcd", "created_at": "2024-01-06T13:37:27.435433+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/73487df7-46ed-4a56-8d34-b97415925bcd", "rel": "self"}]}]} ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_299_node_history_get_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_299_node_history_get_admin ... ok ironic.tests.unit.api.test_acl.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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-69fb4736-2d84-4f6f-9ce3-70b9210006a9 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-69fb4736-2d84-4f6f-9ce3-70b9210006a9 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 Content-Type: application/json Openstack-Request-Id: req-a5e5fd7e-281f-425c-a2db-a5447b564949 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-a5e5fd7e-281f-425c-a2db-a5447b564949 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ba0c09c4-74b9-49cd-8919-c9fde47be095 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-ba0c09c4-74b9-49cd-8919-c9fde47be095 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3a969844-cd1f-40a6-8c68-d3863f1445ca 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-06T13:37:26.966603+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-3a969844-cd1f-40a6-8c68-d3863f1445ca 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-06T13:37:26.966603+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-78c0c80d-a4ed-4b7a-8a46-c8675e956390 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-78c0c80d-a4ed-4b7a-8a46-c8675e956390 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/ports/detail {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-223912ec-9dda-4ec2-80a9-fdb6168eee90 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-06T13:37:28.040374+00:00", "updated_at": null, "address": "52:54:00:cf:2d:31", "extra": {}, "internal_info": {"tenant_vif_port_id": "ee21d58f-5de2-4956-85ff-33935ea1ca00"}, "is_smartnic": false, "local_link_connection": {"switch_id": "0a:1b:2c:3d:4e:5f", "port_id": "Ethernet3/1", "switch_info": "switch1"}, "physical_network": null, "pxe_enabled": true, "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123", "portgroup_uuid": null}]} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_159_nodes_ports_detail_get_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_159_nodes_ports_detail_get_observer ... ok ironic.tests.unit.api.test_acl.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.TestRBACScopedRequests.test_system_scoped_301_node_history_get_reader ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_301_node_history_get_reader ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_001_values ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_001_values ... skipped 'These are fake reference values for YAML templating' ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_160_portgroups_ports_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_160_portgroups_ports_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_002_nodes_post_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_002_nodes_post_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_302_node_history_get_entry_admin ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_302_node_history_get_entry_admin ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_161_portgroups_ports_get_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_161_portgroups_ports_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_303_node_history_get_entry_member ironic.tests.unit.api.test_acl.TestRBACScopedRequests.test_system_scoped_303_node_history_get_entry_member ... ok ironic.tests.unit.api.test_acl.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_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.ibmc.test_utils.IBMCUtilsTestCase.test_handle_ibmc_exception_retry ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_handle_ibmc_exception_retry ... ok ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info ... ok ironic.tests.unit.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.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.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_exception_success ... ok ironic.tests.unit.api.test_acl.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.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.api.test_acl.TestRBACScoped.test_scoped_canary_004_nodes_post_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_004_nodes_post_observer ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault ... 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_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug ... ok ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_invalid_string_value_verify_ca ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_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.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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-db3f99c8-241a-43d9-95a8-47d232203389 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": "73487df7-46ed-4a56-8d34-b97415925bcd", "created_at": "2024-01-06T13:37:27.435433+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/73487df7-46ed-4a56-8d34-b97415925bcd", "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-228aaa3e-b623-4b85-a958-e7a4caacfed0 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": "22c14712-2167-4897-96a7-d43156f567f4", "created_at": "2024-01-06T13:37:28.047449+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/22c14712-2167-4897-96a7-d43156f567f4", "rel": "self"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-228aaa3e-b623-4b85-a958-e7a4caacfed0 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": "22c14712-2167-4897-96a7-d43156f567f4", "created_at": "2024-01-06T13:37:28.047449+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/22c14712-2167-4897-96a7-d43156f567f4", "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-6e8b55d8-7d2c-42bc-bbf0-6791abcd9548 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": "217ede9f-c408-4395-9aa8-8b9a4e556b16", "created_at": "2024-01-06T13:37:28.645665+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/217ede9f-c408-4395-9aa8-8b9a4e556b16", "rel": "self"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6e8b55d8-7d2c-42bc-bbf0-6791abcd9548 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": "217ede9f-c408-4395-9aa8-8b9a4e556b16", "created_at": "2024-01-06T13:37:28.645665+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/217ede9f-c408-4395-9aa8-8b9a4e556b16", "rel": "self"}]}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/29352572-da66-4a44-a3a1-64f5d491f1f9 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/29352572-da66-4a44-a3a1-64f5d491f1f9 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e89718e-c9ac-4cbb-97a7-76b610a228bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "29352572-da66-4a44-a3a1-64f5d491f1f9", "created_at": "2024-01-06T13:37:29.302789+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/29352572-da66-4a44-a3a1-64f5d491f1f9", "rel": "self"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e89718e-c9ac-4cbb-97a7-76b610a228bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "29352572-da66-4a44-a3a1-64f5d491f1f9", "created_at": "2024-01-06T13:37:29.302789+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/29352572-da66-4a44-a3a1-64f5d491f1f9", "rel": "self"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/223dced3-529a-4ca1-9114-0b58aa21c3e5 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/223dced3-529a-4ca1-9114-0b58aa21c3e5 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c5393cfd-fc1f-40fe-9fe0-e6a7349dd888 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "223dced3-529a-4ca1-9114-0b58aa21c3e5", "created_at": "2024-01-06T13:37:30.132654+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/223dced3-529a-4ca1-9114-0b58aa21c3e5", "rel": "self"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c5393cfd-fc1f-40fe-9fe0-e6a7349dd888 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "223dced3-529a-4ca1-9114-0b58aa21c3e5", "created_at": "2024-01-06T13:37:30.132654+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/223dced3-529a-4ca1-9114-0b58aa21c3e5", "rel": "self"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4647e042-bb66-45ff-8879-4cb412a07c6b GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/4647e042-bb66-45ff-8879-4cb412a07c6b {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d5e9ebab-283d-4155-b26a-a086ef12c54c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "4647e042-bb66-45ff-8879-4cb412a07c6b", "created_at": "2024-01-06T13:37:30.697187+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/4647e042-bb66-45ff-8879-4cb412a07c6b", "rel": "self"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d5e9ebab-283d-4155-b26a-a086ef12c54c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "4647e042-bb66-45ff-8879-4cb412a07c6b", "created_at": "2024-01-06T13:37:30.697187+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/4647e042-bb66-45ff-8879-4cb412a07c6b", "rel": "self"}]} GET: / {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-683fbf1e-57fb-4595-93e5-73d62254912f {"error_message": "{\"faultcode\":\"Server\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-3fbadb43-675c-4660-b111-a987d52ffb2c {"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-a8d54f72-69c3-4d54-9b03-bb6a1f011c7d {"error_message": "{\"faultcode\":\"Client\",\"faultstring\":\"Test exception message.\",\"debuginfo\":null}"} ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_clientfault_debug_tracebacks ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_on_serverfault_debug ... ok ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_missing_info ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_missing_info ... ok ironic.tests.unit.api.test_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.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_path_verify_ca ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_path_verify_ca ... ok ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_capath ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_capath ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_006_nodes_get_node_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_006_nodes_get_node_member ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_remote_error_success ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_164_portgroups_ports_detail_get_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_164_portgroups_ports_detail_get_member ... ok ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_parse_driver_info_valid_string_value_verify_ca ... ok ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_revert_dictionary ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_007_nodes_get_node_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_007_nodes_get_node_observer ... ok ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug ironic.tests.unit.api.test_hooks.TestNoExceptionTracebackHook.test_hook_without_traceback_debug ... ok ironic.tests.unit.drivers.modules.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.TestRBACModelBeforeScopes.test_rbac_legacy_165_portgroups_ports_detail_get_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_165_portgroups_ports_detail_get_observer ... ok ironic.tests.unit.api.test_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.test_acl.TestRBACScoped.test_scoped_canary_008_nodes_get_node_other_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_008_nodes_get_node_other_admin ... ok ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_host_url ... 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_hooks.TestPublicUrlHook.test_before_public_endpoint ironic.tests.unit.api.test_hooks.TestPublicUrlHook.test_before_public_endpoint ... 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.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_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_disable_osp_wsgi_request ... ok ironic.tests.unit.api.test_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_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request ironic.tests.unit.api.test_ospmiddleware.TestOsprofilerWsgiMiddleware.test_enable_osp_wsgi_request ... 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.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.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.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.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_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.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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-223912ec-9dda-4ec2-80a9-fdb6168eee90 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-06T13:37:28.040374+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-d1102af0-3560-4f79-8daa-1e5cde7a95f7 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-d1102af0-3560-4f79-8daa-1e5cde7a95f7 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 Content-Type: application/json Openstack-Request-Id: req-12771b9c-4f38-476c-a122-4d6f3ef2448c X-Openstack-Ironic-Api-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-12771b9c-4f38-476c-a122-4d6f3ef2448c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1a3d230a-b4ca-4b0d-8e2c-8d86896bc2f8 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-1a3d230a-b4ca-4b0d-8e2c-8d86896bc2f8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": []} API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-35c3587f-a5e9-47e3-90fa-e8409c777b67 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-35c3587f-a5e9-47e3-90fa-e8409c777b67 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": []} API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports/detail {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-58082c93-a56e-43e8-8035-6a8e635e807c X-Openstack-Ironic-Api-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-58082c93-a56e-43e8-8035-6a8e635e807c X-Openstack-Ironic-Api-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-b1e5810d-8691-4c4e-bbf3-d6be497f9658 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-b1e5810d-8691-4c4e-bbf3-d6be497f9658 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-52544d42-0c43-49a4-880b-74272d31348e 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-52544d42-0c43-49a4-880b-74272d31348e 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 Content-Type: application/json Openstack-Request-Id: req-257884a5-1962-4d37-9a33-37536888bc6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-257884a5-1962-4d37-9a33-37536888bc6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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.common.test_args.ValidateDecoratorTest.test_and ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_and ... ok ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_boolean ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_boolean ... 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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9d0ea451-bfc0-4b10-97d5-bcb10a65971f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-e60ab8b6-0fa9-4bd3-a0d7-e02ff0c9bfa4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-9cee57ab-3070-4e90-8359-210c75e8934a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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/3cd224fc-2797-47ac-88b4-09e58abf47f2 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3cd224fc-2797-47ac-88b4-09e58abf47f2 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-187c7cdb-61b4-4d9c-aed2-e134b4530207 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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/67f57035-5693-454c-9555-7d55bbae536e GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/67f57035-5693-454c-9555-7d55bbae536e {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-44e3cd76-f1b0-42ad-bd83-c3543a48d5a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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/3be385f3-bdef-421b-ab8e-3d9623f96ade GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/3be385f3-bdef-421b-ab8e-3d9623f96ade {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8c1a6163-48c0-4242-838d-cb8ede8df8f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c3ec9821-69f6-427e-8ff1-4fd74a838df6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-33fb838e-fb35-4675-9eb3-617043145947 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-03edd0f7-93b3-4033-bfc1-82faccd7877a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-e140d10a-dd6f-4e32-ae94-a94707469c36 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-ed48d403-caea-4e9b-8aec-aaf404ea6ddd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-a1a869f7-45de-46cd-96b8-9154fffb94b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-d5d2b0ad-a006-410b-9347-c2b59865f205 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes GET: /v1/nodes {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-790cef50-f873-4954-b25e-3a3bd89d4f03 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-9913f148-9fcd-4b2a-a18d-7b40626c9645 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"nodes": []} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-9913f148-9fcd-4b2a-a18d-7b40626c9645 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 {} 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.common.test_args.ValidateDecoratorTest.test_decorated_args ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_args ... 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.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.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_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.common.test_args.ValidateDecoratorTest.test_decorated_kwargs ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_decorated_kwargs ... 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.common.test_args.ValidateDecoratorTest.test_integer ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_integer ... 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.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.common.test_args.ValidateDecoratorTest.test_mandatory ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mandatory ... 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.common.test_args.ValidateDecoratorTest.test_mixed_unvalidated ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_mixed_unvalidated ... ok ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_name ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_name ... 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.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.common.test_args.ValidateDecoratorTest.test_or ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_or ... ok ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string ... 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__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.common.test_args.ValidateDecoratorTest.test_string_list ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_string_list ... 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.common.test_args.ValidateDecoratorTest.test_unexpected_args ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_unexpected_args ... 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.common.test_args.ValidateDecoratorTest.test_uuid ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid ... 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.common.test_args.ValidateDecoratorTest.test_uuid_or_name ironic.tests.unit.common.test_args.ValidateDecoratorTest.test_uuid_or_name ... 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.common.test_args.ValidateDictTest.test_dict_valid ironic.tests.unit.common.test_args.ValidateDictTest.test_dict_valid ... 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.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.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_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.common.test_cinder.TestCinderActions.test_attach_volumes ironic.tests.unit.common.test_cinder.TestCinderActions.test_attach_volumes ... 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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-cad0c126-d367-4d9b-a4c8-ae5324eba031 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-cad0c126-d367-4d9b-a4c8-ae5324eba031 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 Content-Type: application/json Openstack-Request-Id: req-25287c71-95cd-4329-a7be-2b73739db493 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-25287c71-95cd-4329-a7be-2b73739db493 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} API ACL Testing Path get /v1/volume/connectors GET: /v1/volume/connectors {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-42a8cb43-4dac-4b87-96a7-9aea51195029 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-42a8cb43-4dac-4b87-96a7-9aea51195029 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-298b2441-a234-4e44-ae57-adaf594144ec 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-298b2441-a234-4e44-ae57-adaf594144ec 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 Content-Type: application/json Location: http://localhost/v1/volume/connectors/6ef8f1d4-18af-49f3-ac87-bd422e1780f8 Openstack-Request-Id: req-9398b1f3-4afb-4ec7-8a0a-0f2d8600703c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "6ef8f1d4-18af-49f3-ac87-bd422e1780f8", "created_at": "2024-01-06T13:37:38.871018+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/6ef8f1d4-18af-49f3-ac87-bd422e1780f8", "rel": "self"}, {"href": "http://localhost/volume/connectors/6ef8f1d4-18af-49f3-ac87-bd422e1780f8", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"} ACL Test GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/6ef8f1d4-18af-49f3-ac87-bd422e1780f8 Openstack-Request-Id: req-9398b1f3-4afb-4ec7-8a0a-0f2d8600703c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "6ef8f1d4-18af-49f3-ac87-bd422e1780f8", "created_at": "2024-01-06T13:37:38.871018+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/6ef8f1d4-18af-49f3-ac87-bd422e1780f8", "rel": "self"}, {"href": "http://localhost/volume/connectors/6ef8f1d4-18af-49f3-ac87-bd422e1780f8", "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-b3310176-59b9-4d84-8c13-d5f78694f26b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-b3310176-59b9-4d84-8c13-d5f78694f26b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/volume/connectors POST: /v1/volume/connectors {'node_uuid': '1be26c0b-03f2-4d2e-ae87-c02d7f33c123', 'type': 'ip', 'connector_id': '192.168.1.100'} ironic.tests.unit.api.test_acl.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.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.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_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.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_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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.common.test_cinder.TestCinderActions.test_detach_volumes ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes ... 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.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_begin_detaching_failure ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_020_nodes_node_ident_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_020_nodes_node_ident_delete_admin ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_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.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_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_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.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.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.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-71407c16-2dd3-49d2-ae3c-6b59a64d7383 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-71407c16-2dd3-49d2-ae3c-6b59a64d7383 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b4748d3e-8bf5-4d81-ba5a-b005b3eef275 X-Openstack-Ironic-Api-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-06T13:37:40.892250+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-b4748d3e-8bf5-4d81-ba5a-b005b3eef275 X-Openstack-Ironic-Api-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-06T13:37:40.892250+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-ea432e35-bf7e-4ef5-8b16-e7eb61b53a8b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ea432e35-bf7e-4ef5-8b16-e7eb61b53a8b X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-78afeeff-1da5-4a1f-802b-43c7d589de70 X-Openstack-Ironic-Api-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-06T13:37:42.312890+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-78afeeff-1da5-4a1f-802b-43c7d589de70 X-Openstack-Ironic-Api-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-06T13:37:42.312890+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-469821a4-d440-4b20-adc4-05914265d09c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-469821a4-d440-4b20-adc4-05914265d09c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-d5a1e382-2a7a-4be2-9aed-041a4cda543a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d5a1e382-2a7a-4be2-9aed-041a4cda543a X-Openstack-Ironic-Api-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-9f571e40-14d0-4f6f-88db-5ca9999bb538 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-9f571e40-14d0-4f6f-88db-5ca9999bb538 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} ironic.tests.unit.api.test_acl.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.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_missing_parameter ... ok ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error ironic.tests.unit.drivers.modules.ilo.test_bios.IloBiosTestCase.test_cache_bios_settings_with_ilo_error ... ok ironic.tests.unit.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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_182_volume_volume_connector_id_delete_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_182_volume_volume_connector_id_delete_member ... ok ironic.tests.unit.api.test_acl.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.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.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.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.TestRBACModelBeforeScopes.test_rbac_legacy_183_volume_volume_connector_id_delete_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_183_volume_volume_connector_id_delete_observer ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.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_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_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootCommonMethodsTestCase.test_parse_driver_info_deploy_config ... ok ironic.tests.unit.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.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.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.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure ironic.tests.unit.common.test_cinder.TestCinderActions.test_detach_volumes_term_failure ... ok GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0adfd5ee-3596-483c-9c8f-96354a886d3a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-0f4e82a0-d0f6-4d5b-bd72-060524963190 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-a3622662-2602-409c-9c4b-cca684843dac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:list\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ac53fdb1-1fe1-4a4b-9780-a70f73f403bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-cc7b85a7-e94a-40d0-8498-f5c589e45e28 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-755cc9ce-a80d-42d2-8526-136952bf6a2a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e5888f52-097e-4717-991a-3d93ba2d63f4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-530dd94d-2678-42fb-b2ea-eeb2d80bca5b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 PATCH: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-97f01906-36de-49a7-bb9c-04c15b849430 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d33e3b00-7b9b-4bcb-9d14-f4358f78dd1c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d5273153-38c0-4448-8cab-fe20c74def4d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c71c4fe3-775a-4561-a272-20d9328f316e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-61dac2cf-3c85-458f-ab54-4093c33e2d6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0a408ad2-14f8-4e78-b1d1-85462bc5d712 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/validate {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7e9d3132-ff48-442d-80e1-3a5ed0137d31 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 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.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.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.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_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_duplicated_entry ... 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.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.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.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_empty_entry ... ok ironic.tests.unit.drivers.modules.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.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported ironic.tests.unit.common.test_driver_factory.DriverLoadTestCase.test_driver_init_checks_unsupported ... ok ironic.tests.unit.drivers.modules.ilo.test_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_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.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.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 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-ff28c2f9-585d-4e86-bc91-374b013c1293 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ff28c2f9-585d-4e86-bc91-374b013c1293 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-03dfb894-44da-446a-9bc7-1b8573764426 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-03dfb894-44da-446a-9bc7-1b8573764426 X-Openstack-Ironic-Api-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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ae557e96-a300-4584-95cc-cd05295ad56e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-ae557e96-a300-4584-95cc-cd05295ad56e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} API ACL Testing Path get /v1/volume/targets GET: /v1/volume/targets {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-24ee8771-784d-415a-924e-52db038b1c55 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-24ee8771-784d-415a-924e-52db038b1c55 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} API ACL Testing Path get /v1/volume/targets GET: /v1/volume/targets {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-34d668b1-9050-462d-9d9a-e79bd3f6d117 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-34d668b1-9050-462d-9d9a-e79bd3f6d117 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:list\", \"debuginfo\": null}"} API ACL Testing Path get /v1/volume/targets GET: /v1/volume/targets {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-a966c2ba-f0c6-4636-bfa1-052d9379a327 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-a966c2ba-f0c6-4636-bfa1-052d9379a327 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 Content-Type: application/json Location: http://localhost/v1/volume/targets/d7bfd4c5-972c-469d-b363-62479586c98c Openstack-Request-Id: req-1afe8c97-e010-4941-b0ac-67473b900677 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "d7bfd4c5-972c-469d-b363-62479586c98c", "created_at": "2024-01-06T13:37:49.129747+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d7bfd4c5-972c-469d-b363-62479586c98c", "rel": "self"}, {"href": "http://localhost/volume/targets/d7bfd4c5-972c-469d-b363-62479586c98c", "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.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_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.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.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.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.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.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.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_invalid_multiple_params ... ok ironic.tests.unit.api.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.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.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.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.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.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.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.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.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.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.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.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.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.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_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_missing_password ... ok ironic.tests.unit.api.test_acl.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_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.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.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.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.api.test_acl.TestRBACScoped.test_scoped_canary_032_nodes_management_boot_device_put_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_032_nodes_management_boot_device_put_admin ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_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_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.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.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_inspection_false ... ok ironic.tests.unit.common.test_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.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.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.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.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.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.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.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.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.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_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol ironic.tests.unit.drivers.modules.ilo.test_common.IloValidateParametersTestCase.test_parse_driver_info_snmp_true_invalid_priv_protocol ... ok ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_invalid_storage_interface ... 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 ACL Test GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/d7bfd4c5-972c-469d-b363-62479586c98c Openstack-Request-Id: req-1afe8c97-e010-4941-b0ac-67473b900677 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "d7bfd4c5-972c-469d-b363-62479586c98c", "created_at": "2024-01-06T13:37:49.129747+00:00", "updated_at": null, "boot_index": 4, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/d7bfd4c5-972c-469d-b363-62479586c98c", "rel": "self"}, {"href": "http://localhost/volume/targets/d7bfd4c5-972c-469d-b363-62479586c98c", "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-903a16ba-5abf-4cb2-92d2-49847630325f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-903a16ba-5abf-4cb2-92d2-49847630325f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c71145ed-7939-4810-9eb1-8ab01998fd2a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-c71145ed-7939-4810-9eb1-8ab01998fd2a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 200 OK Content-Type: application/json Openstack-Request-Id: req-f073f1d0-3193-45e7-9483-a31c238b2119 X-Openstack-Ironic-Api-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-06T13:37:51.591692+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-f073f1d0-3193-45e7-9483-a31c238b2119 X-Openstack-Ironic-Api-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-06T13:37:51.591692+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-9e09efd6-e5d5-4d72-82db-61462784d566 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9e09efd6-e5d5-4d72-82db-61462784d566 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-90a0abf6-6df3-4461-8186-33280b153789 X-Openstack-Ironic-Api-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-06T13:37:53.046600+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-90a0abf6-6df3-4461-8186-33280b153789 X-Openstack-Ironic-Api-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-06T13:37:53.046600+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-fac7e90f-1584-42c6-961e-7a8410946d26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.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.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.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.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.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.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.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.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_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.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.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface ironic.tests.unit.common.test_driver_factory.HardwareTypeLoadTestCase.test_none_storage_interface ... ok ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state ironic.tests.unit.common.test_fsm.FSMTest.test__validate_target_state ... 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.ilo.test_console.IloConsoleInterfaceTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate ... 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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_195_volume_volume_target_id_patch_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_195_volume_volume_target_id_patch_observer ... ok ironic.tests.unit.api.test_acl.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.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.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc ironic.tests.unit.drivers.modules.ilo.test_console.IloConsoleInterfaceTestCase.test_validate_exc ... 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.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_glance_service.TestGlanceSerializer.test_serialize ironic.tests.unit.common.test_glance_service.TestGlanceSerializer.test_serialize ... 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.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.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.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_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_197_volume_volume_target_id_delete_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_197_volume_volume_target_id_delete_member ... ok ironic.tests.unit.api.test_acl.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.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive_in_swift ironic.tests.unit.common.test_kickstart_utils.KSUtilsTestCase.test_prepare_config_drive_in_swift ... ok ironic.tests.unit.api.test_acl.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.common.test_network.GetPhysnetsByPortgroupID.test_empty ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_empty ... 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.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:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-31424567-2f04-49de-be25-513ae18b5a97 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-6886742a-8f2f-4f2c-8d88-c90ccfe65288 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance None GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-952378f3-3a8b-406f-8e64-c9d3bf87e5cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-66b3fcde-ccf7-4696-a2e1-8797352272fb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9fdaf156-bc37-4707-a2b0-30d5905fb27c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance DELETE: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/maintenance GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d12fd6d9-6675-4626-a383-80bcdaa7be77 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-387bfc3a-e6fa-4588-b934-8b55bc477ecd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4b4ef491-3e9a-457d-a881-f572177cfcf5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {'boot_device': 'pxe'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-687f9e47-60c9-45ce-9b4e-d87584518d84 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-49cf07e1-836c-4d6d-8e9f-a1034c63daf7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3b044d38-570d-4fa6-a914-d113b5fa6766 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e03890aa-d068-459d-a4cc-f9e20ba63a67 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5242a165-5c98-451f-a567-5c1e4739b28c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/management/boot_device/supported {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f8228d47-f155-4110-9d96-c43451007803 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 {} 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.TestRBACScoped.test_scoped_canary_041_nodes_management_inject_nmi_put_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_041_nodes_management_inject_nmi_put_admin ... ok ironic.tests.unit.api.test_acl.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_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_exclude_port_no_id ... 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.common.test_network.GetPhysnetsByPortgroupID.test_one_port ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_one_port ... 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.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.common.test_network.GetPhysnetsByPortgroupID.test_two_ports ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports ... ok ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-fac7e90f-1584-42c6-961e-7a8410946d26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-08703ad7-e49a-4513-9dbb-6d3b29715038 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-08703ad7-e49a-4513-9dbb-6d3b29715038 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-fa0d2987-2957-46e5-a586-033ed3631a2c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-fa0d2987-2957-46e5-a586-033ed3631a2c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:update\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-fcf7710f-5609-4a0a-b05c-2b153099fec3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-fcf7710f-5609-4a0a-b05c-2b153099fec3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-db308287-81cc-4b2f-bf0a-3e6c7f4257fb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-db308287-81cc-4b2f-bf0a-3e6c7f4257fb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4eed311b-2d90-4784-b288-f0b66647f491 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-4eed311b-2d90-4784-b288-f0b66647f491 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-60b0d69a-fd53-4ae3-ae62-7cd564245554 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-60b0d69a-fd53-4ae3-ae62-7cd564245554 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 Content-Type: application/json Openstack-Request-Id: req-cb422a3b-b92e-49aa-b7c5-7507bb301afa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent ironic.tests.unit.common.test_network.GetPhysnetsByPortgroupID.test_two_ports_inconsistent ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_043_nodes_management_inject_nmi_put_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_043_nodes_management_inject_nmi_put_observer ... ok ironic.tests.unit.api.test_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.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.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id ... 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.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.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_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup ironic.tests.unit.common.test_network.GetPortgroupByIdTestCase.test_portgroup_by_id_no_such_portgroup ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.common.test_neutron.TestUnbindPort.test_unbind_neutron_port ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port ... 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.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.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_client_passed ... ok ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure ironic.tests.unit.common.test_neutron.TestUnbindPort.test_unbind_neutron_port_failure ... ok ironic.tests.unit.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.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.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.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.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_nova.NovaApiTestCase.test_invalid_power_update ironic.tests.unit.common.test_nova.NovaApiTestCase.test_invalid_power_update ... 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.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.common.test_nova.NovaApiTestCase.test_power_update_1 ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_1 ... 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.common.test_nova.NovaApiTestCase.test_power_update_2 ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_2 ... 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.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.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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cb422a3b-b92e-49aa-b7c5-7507bb301afa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:get\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2c21b8fa-a772-45a0-af31-a88842f592f5 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-2c21b8fa-a772-45a0-af31-a88842f592f5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/", "rel": "bookmark"}], "connectors": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors", "rel": "bookmark"}], "targets": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets", "rel": "bookmark"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eaed3fb1-8241-43cf-a3c3-dfe06c50901e 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-eaed3fb1-8241-43cf-a3c3-dfe06c50901e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-397036c0-47a5-4afd-ab3d-ade851e8e1e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-397036c0-47a5-4afd-ab3d-ade851e8e1e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4d25d534-0279-4624-875b-356fe5844d56 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-4d25d534-0279-4624-875b-356fe5844d56 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6bd199f4-c8b4-46ff-881e-1e80ce8c6091 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-6bd199f4-c8b4-46ff-881e-1e80ce8c6091 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/volume/targets {} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_206_nodes_volume_targets_get_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_206_nodes_volume_targets_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_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.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.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.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_failed_no_nova ... ok ironic.tests.unit.api.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.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.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.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.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_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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_208_drivers_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_208_drivers_get_admin ... ok ironic.tests.unit.api.test_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.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.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.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.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.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.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 ironic.tests.unit.common.test_nova.NovaApiTestCase.test_power_update_invalid_reponse_format_4 ... ok ironic.tests.unit.api.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.common.test_policy.PolicyTestCase.test_authorize_access_forbidden ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_access_forbidden ... 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.common.test_policy.PolicyTestCase.test_authorize_passes ironic.tests.unit.common.test_policy.PolicyTestCase.test_authorize_passes ... 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.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_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_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.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_config_file ... ok ironic.tests.unit.api.test_acl.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.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.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:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3819106d-3647-4df1-b516-8fafc14f06e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0d228779-e4a6-4854-9754-1746e6c36713 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-6e529ad8-708e-4d62-9154-92b717a0d6df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-9b899d2b-0493-4f1b-968a-1d22ba3f8e63 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-15c4fdba-9dd2-4833-a703-3d1a49595e92 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-5d90d0e6-f003-4b39-9e71-359aeb59911a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-85aa1347-8b5a-48ce-8f01-189056dfb5cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4cc8ba84-b7f6-42ef-ab3b-8d58db16084a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-35d089f0-16e3-4e2e-b8ff-cb6dc54e911e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power PUT: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/states/power {'target': 'power on'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ce2a8924-e35b-47f1-8168-05da6d2f698f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-75ad15cd-646c-4aec-9f60-fd14ef583608 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-73c62c3c-9c01-402f-bd7d-0af15d7eaf88 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a510b928-dc4b-4530-842e-79854f1b4e83 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c395f2a2-e250-40e8-a9a1-cc6c64414a71 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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'} 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_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.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args ironic.tests.unit.common.test_policy.PolicyTestCase.test_get_oslo_policy_enforcer_no_args ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_212_drivers_driver_name_get_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_212_drivers_driver_name_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_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.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.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.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__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.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.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.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.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.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.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_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.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.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.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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8fe47103-6de4-4401-8f59-2b32685fba3d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-8fe47103-6de4-4401-8f59-2b32685fba3d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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: 200 OK Content-Type: application/json Openstack-Request-Id: req-99737d8d-d13e-434f-9bff-97c600ea7c20 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-99737d8d-d13e-434f-9bff-97c600ea7c20 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c123"}]} API ACL Testing Path get /v1/drivers GET: /v1/drivers {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-008c2bb6-fcd4-4f4a-b9fb-8a9b23b06ffd 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-008c2bb6-fcd4-4f4a-b9fb-8a9b23b06ffd 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-6a86318f-bb9d-48de-acd7-bce9a835cb23 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-6a86318f-bb9d-48de-acd7-bce9a835cb23 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-3af54c3a-1ff3-4708-a8e9-7b87be11485c 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-3af54c3a-1ff3-4708-a8e9-7b87be11485c 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 Content-Type: application/json Openstack-Request-Id: req-6c0e45ff-1bff-4ae4-8881-603abd462f47 X-Openstack-Ironic-Api-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-6c0e45ff-1bff-4ae4-8881-603abd462f47 X-Openstack-Ironic-Api-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-e4ab5b28-b47c-465d-ac27-795d43a94b02 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-e4ab5b28-b47c-465d-ac27-795d43a94b02 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz GET: /v1/drivers/fake-driverz {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-50ca48fd-e803-4d72-a012-40791b718b10 X-Openstack-Ironic-Api-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-50ca48fd-e803-4d72-a012-40791b718b10 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Could not find the following driver(s) or hardware type(s): fake-driverz.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz/properties GET: /v1/drivers/fake-driverz/properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-17721fa5-bdf9-4313-a897-6f72f2298970 X-Openstack-Ironic-Api-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-17721fa5-bdf9-4313-a897-6f72f2298970 X-Openstack-Ironic-Api-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.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.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.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.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.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.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.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.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.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.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.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.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.api.test_acl.TestRBACScoped.test_scoped_canary_060_nodes_states_raid_put_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_060_nodes_states_raid_put_member ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_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.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_get_instance_image_info_localboot ... ok ironic.tests.unit.drivers.modules.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_219_drivers_raid_logical_disk_properties_get_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_219_drivers_raid_logical_disk_properties_get_observer ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.TestRBACModelBeforeScopes.test_rbac_legacy_220_drivers_vendor_passthru_methods_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_220_drivers_vendor_passthru_methods_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_062_nodes_states_console_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_062_nodes_states_console_get_admin ... ok ironic.tests.unit.common.test_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.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.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.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.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.api.test_acl.TestRBACScoped.test_scoped_canary_063_nodes_states_console_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_063_nodes_states_console_get_member ... ok ironic.tests.unit.common.test_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.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_clear_iscsi_boot_target_in_bios ... ok ironic.tests.unit.api.test_acl.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.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.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_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.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_deploy_ramdisk ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_create_csr ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_create_csr ... ok ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel ironic.tests.unit.common.test_pxe_utils.PXEInterfacesTestCase.test_parse_driver_info_missing_rescue_kernel ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_223_drivers_vendor_passthru_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_223_drivers_vendor_passthru_get_admin ... ok ironic.tests.unit.common.test_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.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.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c9e4934f-bacd-4c88-b74b-e663dff450c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-c9e4934f-bacd-4c88-b74b-e663dff450c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-2d9b2be2-9a8f-44fc-8315-f5dc4f33d6c4 X-Openstack-Ironic-Api-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-2d9b2be2-9a8f-44fc-8315-f5dc4f33d6c4 X-Openstack-Ironic-Api-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-0d87bb94-4d73-4e82-8866-69f339ed835c X-Openstack-Ironic-Api-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-0d87bb94-4d73-4e82-8866-69f339ed835c X-Openstack-Ironic-Api-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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a8aa8068-cddf-469b-a9df-de1d0203d404 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a8aa8068-cddf-469b-a9df-de1d0203d404 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:get_raid_logical_disk_properties\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz/raid/logical_disk_properties GET: /v1/drivers/fake-driverz/raid/logical_disk_properties {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0758cae5-7526-4b7d-aa12-cf7a35c0c6f1 X-Openstack-Ironic-Api-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-0758cae5-7526-4b7d-aa12-cf7a35c0c6f1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a227e5f0-dcc9-4dd1-8c87-e23d4c9e5f29 X-Openstack-Ironic-Api-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-a227e5f0-dcc9-4dd1-8c87-e23d4c9e5f29 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c0e16889-7615-4a08-8634-619169936ed2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-c0e16889-7615-4a08-8634-619169936ed2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru/methods GET: /v1/drivers/fake-driverz/vendor_passthru/methods {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-eeb7354c-b46c-42fb-9285-b0f99bc25df1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-eeb7354c-b46c-42fb-9285-b0f99bc25df1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:driver:vendor_passthru\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz/vendor_passthru?method=test GET: /v1/drivers/fake-driverz/vendor_passthru?method=test {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cb234ec8-6200-4f04-a47e-5d01ec2f85d8 X-Openstack-Ironic-Api-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-cb234ec8-6200-4f04-a47e-5d01ec2f85d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"No conductors registered.\", \"debuginfo\": null}"} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_224_drivers_vendor_passthru_get_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_224_drivers_vendor_passthru_get_member ... ok ironic.tests.unit.common.test_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.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.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.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_225_drivers_vendor_passthru_get_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_225_drivers_vendor_passthru_get_observer ... ok ironic.tests.unit.common.test_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.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_fail ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_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.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_ip_address_path ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_device_next_boot ... ok ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test__get_pxe_mac_path ... ok ironic.tests.unit.api.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.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.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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1f604064-8d97-4c7f-8938-66ab7d055529 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-2d274122-1a6a-4e4c-8d3d-4e4fe5d70acf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-77ea1db9-55d6-4c86-b19a-91266a5a8c31 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-37894980-0346-4884-a69a-60952fb2e366 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-92143ecb-61a8-4b04-9ef1-920d5737e111 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-927af9fd-ca5b-46b5-b817-3a67c43b8d52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ef5828ec-64de-4302-9c53-74e4d5e83110 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-bba2d3a2-59f8-40f9-a213-ac0850ab669d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-29bfe1fc-2d22-4148-845c-7502f47a26e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-fc0fd2cb-e987-4584-8ae4-0242f709a77d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-931ed91e-5577-4e6d-8988-81a61df8aeec X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c45c71fb-1206-4416-8aff-9bf4058d681d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-21d7b9f1-6be2-4453-9c77-80dd58e2b48b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-c0c8b644-5705-4122-ad05-a96f236288ef X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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_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.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.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.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.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.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.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.ilo.test_management.IloManagementTestCase.test_get_boot_mode_fail ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_boot_mode_fail ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_228_drivers_vendor_passthru_post_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_228_drivers_vendor_passthru_post_observer ... ok ironic.tests.unit.common.test_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.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_get_properties ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.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.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.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.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.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.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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_229_drivers_vendor_passthru_put_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_229_drivers_vendor_passthru_put_admin ... ok ironic.tests.unit.common.test_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.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.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.TestRBACModelBeforeScopes.test_rbac_legacy_230_drivers_vendor_passthru_put_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_230_drivers_vendor_passthru_put_member ... ok ironic.tests.unit.common.test_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.ilo.test_management.IloManagementTestCase.test_inject_nmi ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi ... 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.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.api.test_acl.TestRBACScoped.test_scoped_canary_074_nodes_vendor_passthru_post_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_074_nodes_vendor_passthru_post_member ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_inject_nmi_failed ... 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.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.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.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_fallback ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_ipxe_boot_script_fallback ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_232_drivers_vendor_passthru_delete_admin ... skipped 'not updated for scope testing' ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_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.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.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.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.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.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.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_bios ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_existing_dirs_bios ... ok ironic.tests.unit.drivers.modules.ilo.test_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.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.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 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-4a2dc411-1c10-4f62-8086-a99dff872972 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-4a2dc411-1c10-4f62-8086-a99dff872972 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-e5e75a12-d5f5-4519-a467-40a9dfdaf89d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-e5e75a12-d5f5-4519-a467-40a9dfdaf89d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-7f89b4e3-1cfb-40ec-ac18-37ddeedd4082 X-Openstack-Ironic-Api-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-7f89b4e3-1cfb-40ec-ac18-37ddeedd4082 X-Openstack-Ironic-Api-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-1c59a2ce-47f6-4673-80e9-866ece2d4ee7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-1c59a2ce-47f6-4673-80e9-866ece2d4ee7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-39421200-feac-4b41-a6bf-7614da3b3fd5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-39421200-feac-4b41-a6bf-7614da3b3fd5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-9da6bff1-d548-4b91-9f3e-ed6d15e0ba1e X-Openstack-Ironic-Api-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-9da6bff1-d548-4b91-9f3e-ed6d15e0ba1e X-Openstack-Ironic-Api-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-661e7108-59c9-4081-83b0-94e9d81cb998 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-661e7108-59c9-4081-83b0-94e9d81cb998 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-ae686ea1-ac70-4614-a018-f51ed086117a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-ae686ea1-ac70-4614-a018-f51ed086117a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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.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.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.api.test_acl.TestRBACScoped.test_scoped_canary_078_nodes_vendor_passthru_put_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_078_nodes_vendor_passthru_put_observer ... ok ironic.tests.unit.api.test_acl.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.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_create_pxe_config_uefi_ipxe ... ok ironic.tests.unit.drivers.modules.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.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.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.ilo.test_management.IloManagementTestCase.test_security_parameters_update ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_security_parameters_update ... ok ironic.tests.unit.api.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.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.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_boot_device_fail ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_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.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_anaconda ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_anaconda ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_237_nodes_bios_bios_setting_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_237_nodes_bios_bios_setting_get_admin ... ok ironic.tests.unit.drivers.modules.ilo.test_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.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_iso ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_iso ... ok ironic.tests.unit.drivers.modules.ilo.test_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.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.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 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-79bc01ce-2f5b-4a27-bc8f-ff662e7bcd59 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-a4bb5464-03ed-4fd1-9645-1ed4a5585ad2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-05765cd2-bbcd-4412-a8c5-d7f83de2492d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-e504003f-ad29-4d5e-9d9b-e91f4468207a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-e870fc46-0d67-4a78-8a60-7a9886b9dbc9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0d0d710c-59b6-40d2-a9db-15a48acc9dbf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b04be0af-c84d-4fb5-9684-ea0763a86742 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-6e669a95-282e-4ea9-8c12-ab4b0bcb29db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a231480d-fc9d-4c17-b936-619d99d5e740 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-83081a32-d62e-4ed0-ae6f-b09521f94f52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-79f68331-516e-45eb-ae50-955156cd6507 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-dd1ca690-281e-42c0-9f24-47e4c569ede6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-9aeb9223-9460-40c9-95ba-170595e4f4b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_081_nodes_vendor_passthru_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_081_nodes_vendor_passthru_delete_observer ... ok ironic.tests.unit.drivers.modules.ilo.test_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.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_from_volume_config ... ok ironic.tests.unit.drivers.modules.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_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.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.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.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.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.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.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.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_boot_script ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-609d15db-b014-4001-9c23-2c382a5a2338 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-06T13:38:22.223940+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-609d15db-b014-4001-9c23-2c382a5a2338 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-06T13:38:22.223940+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-d6a0255e-c941-4fe1-878f-def5eebc5977 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-d6a0255e-c941-4fe1-878f-def5eebc5977 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-6a9428bc-7616-44ea-ba25-06fdd056c458 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-06T13:38:23.777716+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-6a9428bc-7616-44ea-ba25-06fdd056c458 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-06T13:38:23.777716+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-ef395f2c-c707-4335-930f-7c6bcd1011e2 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-06T13:38:24.563285+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-ef395f2c-c707-4335-930f-7c6bcd1011e2 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-06T13:38:24.563285+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-e7f63a79-a180-4724-8ee8-6dd0d497c170 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-e7f63a79-a180-4724-8ee8-6dd0d497c170 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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: 200 OK Content-Type: application/json Openstack-Request-Id: req-524ff30b-a699-471e-86eb-01077e15707e 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-06T13:38:26.120100+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-524ff30b-a699-471e-86eb-01077e15707e 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-06T13:38:26.120100+00:00", "updated_at": null, "name": "FAKE_SETTING", "value": "FAKE_SETTING", "attribute_type": "Enumeration", "allowable_values": ["on", "off"], "lower_bound": null, "max_length": null, "min_length": null, "read_only": false, "reset_required": true, "unique": false, "upper_bound": null, "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "self"}, {"href": "http://localhost/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/bios/FAKE_SETTING", "rel": "bookmark"}]}} API ACL Testing Path get /v1/conductors GET: /v1/conductors {} ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_240_conductors_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_240_conductors_get_admin ... ok ironic.tests.unit.drivers.modules.ilo.test_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.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_ipxe_config ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_default_pxe_config ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_085_nodes_traits_put_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_085_nodes_traits_put_admin ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_242_conductors_get_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_242_conductors_get_observer ... ok ironic.tests.unit.drivers.modules.ilo.test_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.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_dhcp_options_for_instance ... ok ironic.tests.unit.common.test_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.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_set_iscsi_boot_target_without_auth ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.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.common.test_pxe_utils.TestPXEUtils.test_fallback_ipxe_boot_script ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_fallback_ipxe_boot_script ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_calls_step_foreach_url_clean ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_245_conductors_hostname_get_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_245_conductors_hostname_get_observer ... ok ironic.tests.unit.drivers.modules.ilo.test_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.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_get_pxe_config_file_path ... ok ironic.tests.unit.common.test_pxe_utils.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_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.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.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_cleans_all_files_if_exc_thrown_deploy ... ok ironic.tests.unit.api.test_acl.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.common.test_pxe_utils.TestPXEUtils.test_place_common_config ironic.tests.unit.common.test_pxe_utils.TestPXEUtils.test_place_common_config ... ok ironic.tests.unit.api.test_acl.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.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.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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_247_allocations_post_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_247_allocations_post_member ... skipped "This endpoint's behavior supports allocation creation as a member with the new Role Based Access Control changes. Thus this test cannot both ensure prior and post-change behavior as it is actually valid moving forward." ironic.tests.unit.drivers.modules.ilo.test_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.test_acl.TestRBACScoped.test_scoped_canary_091_nodes_traits_trait_put_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_091_nodes_traits_trait_put_admin ... ok ironic.tests.unit.drivers.modules.ilo.test_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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dbe613f8-bd1b-47f7-b9ef-6c481baec5d6 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-dbe613f8-bd1b-47f7-b9ef-6c481baec5d6 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-48dc0b67-788b-4c4b-af83-c0922e1585a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-48dc0b67-788b-4c4b-af83-c0922e1585a9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} API ACL Testing Path get /v1/conductors GET: /v1/conductors {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-85af13d8-9279-4bec-9c62-de1903e453f6 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-85af13d8-9279-4bec-9c62-de1903e453f6 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 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-d1bd7254-0e6e-4258-ab9f-40dff2a3a84b 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-06T13:38:29.185715+00:00", "updated_at": "2024-01-06T13:38:29.196928+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-d1bd7254-0e6e-4258-ab9f-40dff2a3a84b 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-06T13:38:29.185715+00:00", "updated_at": "2024-01-06T13:38:29.196928+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-68ca925c-4bb9-4674-801c-6108931b7776 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-68ca925c-4bb9-4674-801c-6108931b7776 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:conductor:get\", \"debuginfo\": null}"} API ACL Testing Path get /v1/conductors/test-conductor-node GET: /v1/conductors/test-conductor-node {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-40798f5e-a20b-4cbc-af55-e738e4b773cb 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-06T13:38:30.458431+00:00", "updated_at": "2024-01-06T13:38:30.461312+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-40798f5e-a20b-4cbc-af55-e738e4b773cb 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-06T13:38:30.458431+00:00", "updated_at": "2024-01-06T13:38:30.461312+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-d889dfe5-875c-429e-997a-488726f7760c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d889dfe5-875c-429e-997a-488726f7760c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-65980e51-ad19-47ce-bb75-db15ba09411a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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.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.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_249_allocations_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_249_allocations_get_admin ... 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.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.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.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.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.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.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_250_allocations_get_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_250_allocations_get_member ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.common.test_utils.GenericUtilsTestCase.test__get_hash_object ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test__get_hash_object ... 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.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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-b9b1132c-8d77-4e73-8325-ee58100b4308 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-ee8d690b-21f1-42cb-996e-d15ec95bb139 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-38d30855-fa44-467d-b0c1-c055fd8402ba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-9714eb74-6b99-4658-af26-d7ea6000105e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-6f6c461d-8d72-47b5-bdb4-230bc95a5dd4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-f8b1f283-1253-41f4-aef7-cc963b181935 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-06c2a9c2-76af-4e6b-9b83-8922e47e22be X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d8641166-bd27-4b4c-9558-752698d7658f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-993fa505-809e-4544-94c7-aaf3c9ebe2f8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-534bdfa8-2bf0-4bec-95f3-2fa15252ee5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-34630345-f16a-4001-ae0c-e317a0a7ed3a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-86ab21a5-a4be-45a1-8954-f4a8c2960bf6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-df541569-188d-490d-ac23-40095ed86003 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-9681ce1e-c1e0-48cd-8119-58406f12f2f8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_095_nodes_traits_trait_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_095_nodes_traits_trait_delete_member ... ok ironic.tests.unit.drivers.modules.ilo.test_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.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_differ ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_update_firmware_invalid_update_mode_provided_deploy ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_252_allocations_allocation_id_get_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_252_allocations_allocation_id_get_admin ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_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.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_file_has_content_equal_not_binary ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_fips_enabled ... ok ironic.tests.unit.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.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_hostname_safe ... 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.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.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_datapath_id ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_logical_name ... ok ironic.tests.unit.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.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_is_valid_no_proxy ... ok ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip ... ok ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_validate ... ok ironic.tests.unit.api.test_acl.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.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions ironic.tests.unit.common.test_utils.GenericUtilsTestCase.test_safe_rstrip_not_raises_exceptions ... ok ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-65980e51-ad19-47ce-bb75-db15ba09411a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:create_restricted\", \"debuginfo\": null}"} API ACL Testing Path get /v1/allocations GET: /v1/allocations {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-797bae25-75f4-4b80-8827-19ee5cd195d9 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": "47c39b55-a699-4b05-ab29-9c9431d1d5da", "created_at": "2024-01-06T13:38:32.916688+00:00", "updated_at": "2024-01-06T13:38:32.974298+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/47c39b55-a699-4b05-ab29-9c9431d1d5da", "rel": "self"}, {"href": "http://localhost/allocations/47c39b55-a699-4b05-ab29-9c9431d1d5da", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-797bae25-75f4-4b80-8827-19ee5cd195d9 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": "47c39b55-a699-4b05-ab29-9c9431d1d5da", "created_at": "2024-01-06T13:38:32.916688+00:00", "updated_at": "2024-01-06T13:38:32.974298+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/47c39b55-a699-4b05-ab29-9c9431d1d5da", "rel": "self"}, {"href": "http://localhost/allocations/47c39b55-a699-4b05-ab29-9c9431d1d5da", "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-57e5535f-4c5c-4389-a7a6-b57fbf91ee19 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-57e5535f-4c5c-4389-a7a6-b57fbf91ee19 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:allocation:list\", \"debuginfo\": null}"} API ACL Testing Path get /v1/allocations GET: /v1/allocations {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5e137e0f-ee72-4d20-9252-0672a4ff5fd4 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": "fdd62114-cd37-4df9-9bf4-77864c65867f", "created_at": "2024-01-06T13:38:34.344804+00:00", "updated_at": "2024-01-06T13:38:34.398712+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/fdd62114-cd37-4df9-9bf4-77864c65867f", "rel": "self"}, {"href": "http://localhost/allocations/fdd62114-cd37-4df9-9bf4-77864c65867f", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-5e137e0f-ee72-4d20-9252-0672a4ff5fd4 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": "fdd62114-cd37-4df9-9bf4-77864c65867f", "created_at": "2024-01-06T13:38:34.344804+00:00", "updated_at": "2024-01-06T13:38:34.398712+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/fdd62114-cd37-4df9-9bf4-77864c65867f", "rel": "self"}, {"href": "http://localhost/allocations/fdd62114-cd37-4df9-9bf4-77864c65867f", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"}]} API ACL Testing Path get /v1/allocations/8ef96402-76b7-419e-a07d-d83942cfc163 GET: /v1/allocations/8ef96402-76b7-419e-a07d-d83942cfc163 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bf0a9049-59d1-4062-b4e1-712e8211d0a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "8ef96402-76b7-419e-a07d-d83942cfc163", "created_at": "2024-01-06T13:38:35.044265+00:00", "updated_at": "2024-01-06T13:38:35.083175+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/8ef96402-76b7-419e-a07d-d83942cfc163", "rel": "self"}, {"href": "http://localhost/allocations/8ef96402-76b7-419e-a07d-d83942cfc163", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bf0a9049-59d1-4062-b4e1-712e8211d0a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "8ef96402-76b7-419e-a07d-d83942cfc163", "created_at": "2024-01-06T13:38:35.044265+00:00", "updated_at": "2024-01-06T13:38:35.083175+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/8ef96402-76b7-419e-a07d-d83942cfc163", "rel": "self"}, {"href": "http://localhost/allocations/8ef96402-76b7-419e-a07d-d83942cfc163", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} API ACL Testing Path get /v1/allocations/8e6ea857-e8c3-4417-be08-ca57b1f162ed GET: /v1/allocations/8e6ea857-e8c3-4417-be08-ca57b1f162ed {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-28665e30-03c1-494c-98ae-53f4cc1a1cfc X-Openstack-Ironic-Api-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 8e6ea857-e8c3-4417-be08-ca57b1f162ed could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-28665e30-03c1-494c-98ae-53f4cc1a1cfc X-Openstack-Ironic-Api-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 8e6ea857-e8c3-4417-be08-ca57b1f162ed could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/allocations/57d98a24-93b8-4cc9-a297-b4a063ac6ad9 GET: /v1/allocations/57d98a24-93b8-4cc9-a297-b4a063ac6ad9 {} 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.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.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_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.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.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.api.test_acl.TestRBACScoped.test_scoped_canary_099_nodes_vifs_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_099_nodes_vifs_get_observer ... ok ironic.tests.unit.common.test_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.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_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_allocations.DoAllocateTestCase.test_name_match_first ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_name_match_first ... 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.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.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.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_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_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.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.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_deploy ironic.tests.unit.drivers.modules.ilo.test_management.IloManagementTestCase.test_write_firmware_sum_mode_without_component_deploy ... ok ironic.tests.unit.api.test_acl.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.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out ... ok ironic.tests.unit.drivers.modules.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.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.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out_project ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_filtered_out_project ... ok ironic.tests.unit.drivers.modules.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_258_allocations_allocation_id_delete_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_258_allocations_allocation_id_delete_admin ... ok ironic.tests.unit.drivers.modules.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.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_nodes_locked ... 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.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.conductor.test_allocations.DoAllocateTestCase.test_success ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_success ... 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.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.conductor.test_allocations.DoAllocateTestCase.test_with_candidates ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_candidates ... 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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4eb94f64-c269-436b-b6b8-9557c23c6415 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "57d98a24-93b8-4cc9-a297-b4a063ac6ad9", "created_at": "2024-01-06T13:38:36.363285+00:00", "updated_at": "2024-01-06T13:38:36.410541+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/57d98a24-93b8-4cc9-a297-b4a063ac6ad9", "rel": "self"}, {"href": "http://localhost/allocations/57d98a24-93b8-4cc9-a297-b4a063ac6ad9", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4eb94f64-c269-436b-b6b8-9557c23c6415 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "57d98a24-93b8-4cc9-a297-b4a063ac6ad9", "created_at": "2024-01-06T13:38:36.363285+00:00", "updated_at": "2024-01-06T13:38:36.410541+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/57d98a24-93b8-4cc9-a297-b4a063ac6ad9", "rel": "self"}, {"href": "http://localhost/allocations/57d98a24-93b8-4cc9-a297-b4a063ac6ad9", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} API ACL Testing Path patch /v1/allocations/bb7e35d4-70a1-472e-ab1f-7f8dea9f5a87 PATCH: /v1/allocations/bb7e35d4-70a1-472e-ab1f-7f8dea9f5a87 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c687fe62-797c-4c97-9b3d-e1ffe119ec12 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "bb7e35d4-70a1-472e-ab1f-7f8dea9f5a87", "created_at": "2024-01-06T13:38:37.336733+00:00", "updated_at": "2024-01-06T13:38:37.713883+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/bb7e35d4-70a1-472e-ab1f-7f8dea9f5a87", "rel": "self"}, {"href": "http://localhost/allocations/bb7e35d4-70a1-472e-ab1f-7f8dea9f5a87", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c687fe62-797c-4c97-9b3d-e1ffe119ec12 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "bb7e35d4-70a1-472e-ab1f-7f8dea9f5a87", "created_at": "2024-01-06T13:38:37.336733+00:00", "updated_at": "2024-01-06T13:38:37.713883+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/bb7e35d4-70a1-472e-ab1f-7f8dea9f5a87", "rel": "self"}, {"href": "http://localhost/allocations/bb7e35d4-70a1-472e-ab1f-7f8dea9f5a87", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} API ACL Testing Path patch /v1/allocations/7d46dae0-b1ae-4483-bff6-bf8134b3027b PATCH: /v1/allocations/7d46dae0-b1ae-4483-bff6-bf8134b3027b [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-94a546da-e51f-4584-aed1-be03a2b88010 X-Openstack-Ironic-Api-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 7d46dae0-b1ae-4483-bff6-bf8134b3027b could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-94a546da-e51f-4584-aed1-be03a2b88010 X-Openstack-Ironic-Api-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 7d46dae0-b1ae-4483-bff6-bf8134b3027b could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/allocations/fbacc2eb-83db-4205-88a5-2004fbc47d51 PATCH: /v1/allocations/fbacc2eb-83db-4205-88a5-2004fbc47d51 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-97e07e2e-50ea-4323-9ef9-632243978fbf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-97e07e2e-50ea-4323-9ef9-632243978fbf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/a006a2c9-61c4-446c-9919-0b31faa69e0c DELETE: /v1/allocations/a006a2c9-61c4-446c-9919-0b31faa69e0c GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-588beae9-f05e-47c1-a49f-15b7604d1ba1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-588beae9-f05e-47c1-a49f-15b7604d1ba1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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/486b3afa-0c63-466b-94cf-bb1dad8fbec3 DELETE: /v1/allocations/486b3afa-0c63-466b-94cf-bb1dad8fbec3 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5106ca65-a05f-4bc3-a26b-2edde34f49e0 X-Openstack-Ironic-Api-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 486b3afa-0c63-466b-94cf-bb1dad8fbec3 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5106ca65-a05f-4bc3-a26b-2edde34f49e0 X-Openstack-Ironic-Api-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 486b3afa-0c63-466b-94cf-bb1dad8fbec3 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/allocations/960c2a6a-68d8-48be-912b-e2f4aa72caca DELETE: /v1/allocations/960c2a6a-68d8-48be-912b-e2f4aa72caca GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e8c11aa8-07f1-4054-8194-99f431f4910a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.conductor.test_allocations.DoAllocateTestCase.test_with_traits ironic.tests.unit.conductor.test_allocations.DoAllocateTestCase.test_with_traits ... 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.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.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.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_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.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_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.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.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.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.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.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_263_nodes_allocation_get_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_263_nodes_allocation_get_observer ... ok ironic.tests.unit.api.test_acl.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.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.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_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.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_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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_next_clean_step_automated_no_steps ... ok ironic.tests.unit.drivers.modules.irmc.test_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.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.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.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.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.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.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.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_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.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.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.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.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_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.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.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_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.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.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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e8c11aa8-07f1-4054-8194-99f431f4910a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-8a0683c2-d67e-4037-bcf5-9cb7c97a71fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "f070653d-9ab7-4f40-a476-f8e83dcf17bc", "created_at": "2024-01-06T13:38:41.436714+00:00", "updated_at": "2024-01-06T13:38:41.492363+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/f070653d-9ab7-4f40-a476-f8e83dcf17bc", "rel": "self"}, {"href": "http://localhost/allocations/f070653d-9ab7-4f40-a476-f8e83dcf17bc", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8a0683c2-d67e-4037-bcf5-9cb7c97a71fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "f070653d-9ab7-4f40-a476-f8e83dcf17bc", "created_at": "2024-01-06T13:38:41.436714+00:00", "updated_at": "2024-01-06T13:38:41.492363+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/f070653d-9ab7-4f40-a476-f8e83dcf17bc", "rel": "self"}, {"href": "http://localhost/allocations/f070653d-9ab7-4f40-a476-f8e83dcf17bc", "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-09c9dc7f-9c95-4ae9-b6db-6487ca4f0922 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-09c9dc7f-9c95-4ae9-b6db-6487ca4f0922 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation GET: /v1/nodes/22e26c0b-03f2-4d2e-ae87-c02d7f33c000/allocation {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-956d62ec-79fc-49db-aa5a-5e3ad5c445d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "357fd2cc-b9c9-4ba6-8dd2-17b0306f1677", "created_at": "2024-01-06T13:38:42.984999+00:00", "updated_at": "2024-01-06T13:38:43.038055+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/357fd2cc-b9c9-4ba6-8dd2-17b0306f1677", "rel": "self"}, {"href": "http://localhost/allocations/357fd2cc-b9c9-4ba6-8dd2-17b0306f1677", "rel": "bookmark"}], "node_uuid": "22e26c0b-03f2-4d2e-ae87-c02d7f33c000"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-956d62ec-79fc-49db-aa5a-5e3ad5c445d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "357fd2cc-b9c9-4ba6-8dd2-17b0306f1677", "created_at": "2024-01-06T13:38:42.984999+00:00", "updated_at": "2024-01-06T13:38:43.038055+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/357fd2cc-b9c9-4ba6-8dd2-17b0306f1677", "rel": "self"}, {"href": "http://localhost/allocations/357fd2cc-b9c9-4ba6-8dd2-17b0306f1677", "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-496e60fb-c45e-4042-92fd-d05d845e1bb2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-496e60fb-c45e-4042-92fd-d05d845e1bb2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-08a72dba-09ba-4a26-bebb-4ab3f7c89cfc X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-08a72dba-09ba-4a26-bebb-4ab3f7c89cfc X-Openstack-Ironic-Api-Maximum-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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4a886ab9-09a9-4d4f-8917-41ef209b39a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-4a886ab9-09a9-4d4f-8917-41ef209b39a7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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_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.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.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.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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-61621103-682c-4e38-aa12-e9dbab348ef7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ad214662-6b9b-4054-a15d-2eb6a4051758 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-d0c3950b-df77-4f6f-ad84-6ee6f9685406 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-55663677-8d48-401a-9d80-0e58f45ab1f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-bed0afbd-46cd-465d-a572-f1c5c15bd273 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a9c1b560-7a95-457f-81a5-6a09dddf6714 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-059260ff-6f60-40ef-8dc9-30a2e8897b45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-32462d71-dd43-47d7-9170-49a12d4be47a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1cefcdf9-76e2-4520-9920-029f0bbb2cc0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-22aecf69-12f5-4d6d-ac96-88b01b58d2ea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b5ac4884-5581-489c-adc0-5b3fbe632803 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-692b3178-ea82-4f8a-978a-962277594e82 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-d7a88d4e-de5f-411d-8406-00da9dcd42d1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-3ff00c29-e45f-4dab-8564-6515187bc5da X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 {} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_112_portgroups_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_112_portgroups_get_admin ... ok ironic.tests.unit.drivers.modules.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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_deprecated ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_deprecated ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.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.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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__parse_instance_info_with_boot_iso_glance_ok ... ok ironic.tests.unit.conductor.test_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.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.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.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_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.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.api.test_acl.TestRBACScoped.test_scoped_canary_115_portgroups_post_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_115_portgroups_post_admin ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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.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.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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled ... ok GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/deploy_templates/595b15ff-23ed-461a-8744-c35c53fe4def Openstack-Request-Id: req-9c7d3df3-7fab-4221-9dde-99687b2d5fa8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "595b15ff-23ed-461a-8744-c35c53fe4def", "created_at": "2024-01-06T13:38:46.350662+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/595b15ff-23ed-461a-8744-c35c53fe4def", "rel": "self"}, {"href": "http://localhost/deploy_templates/595b15ff-23ed-461a-8744-c35c53fe4def", "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/595b15ff-23ed-461a-8744-c35c53fe4def Openstack-Request-Id: req-9c7d3df3-7fab-4221-9dde-99687b2d5fa8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "595b15ff-23ed-461a-8744-c35c53fe4def", "created_at": "2024-01-06T13:38:46.350662+00:00", "updated_at": null, "name": "CUSTOM_TEST_TEMPLATE", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/595b15ff-23ed-461a-8744-c35c53fe4def", "rel": "self"}, {"href": "http://localhost/deploy_templates/595b15ff-23ed-461a-8744-c35c53fe4def", "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-bdcd791d-0327-4b97-a3a8-21b0ef841360 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-bdcd791d-0327-4b97-a3a8-21b0ef841360 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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}]} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1131f269-95a7-49bc-b84c-84a972c233d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-1131f269-95a7-49bc-b84c-84a972c233d4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:create\", \"debuginfo\": null}"} API ACL Testing Path get /v1/deploy_templates GET: /v1/deploy_templates {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fea7db86-0a73-4608-9327-76179d2dfe44 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": "0d8114d2-26a3-4534-888e-c4040669c591", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/0d8114d2-26a3-4534-888e-c4040669c591", "rel": "self"}, {"href": "http://localhost/deploy_templates/0d8114d2-26a3-4534-888e-c4040669c591", "rel": "bookmark"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fea7db86-0a73-4608-9327-76179d2dfe44 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": "0d8114d2-26a3-4534-888e-c4040669c591", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/0d8114d2-26a3-4534-888e-c4040669c591", "rel": "self"}, {"href": "http://localhost/deploy_templates/0d8114d2-26a3-4534-888e-c4040669c591", "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-7b0bda93-a947-4a38-ac99-8100f0da026b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-7b0bda93-a947-4a38-ac99-8100f0da026b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-db60c584-3b56-4f1b-9690-c7f6fbb7927c 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": "65e3ef0d-8286-4684-8a3c-635d90a8783c", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/65e3ef0d-8286-4684-8a3c-635d90a8783c", "rel": "self"}, {"href": "http://localhost/deploy_templates/65e3ef0d-8286-4684-8a3c-635d90a8783c", "rel": "bookmark"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-db60c584-3b56-4f1b-9690-c7f6fbb7927c 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": "65e3ef0d-8286-4684-8a3c-635d90a8783c", "name": "CUSTOM_DT1", "links": [{"href": "http://localhost/v1/deploy_templates/65e3ef0d-8286-4684-8a3c-635d90a8783c", "rel": "self"}, {"href": "http://localhost/deploy_templates/65e3ef0d-8286-4684-8a3c-635d90a8783c", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/deploy_templates/0f530f27-41d3-45e9-a18f-d644d0c12e8d GET: /v1/deploy_templates/0f530f27-41d3-45e9-a18f-d644d0c12e8d {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2827b5a1-6daf-4866-a97b-a5310394919a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "0f530f27-41d3-45e9-a18f-d644d0c12e8d", "created_at": "2024-01-06T13:38:50.455157+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0f530f27-41d3-45e9-a18f-d644d0c12e8d", "rel": "self"}, {"href": "http://localhost/deploy_templates/0f530f27-41d3-45e9-a18f-d644d0c12e8d", "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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__prepare_boot_iso_fetch_ok ... ok ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_disabled_individual_disabled ... ok ironic.tests.unit.drivers.modules.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_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.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.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.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_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_119_portgroups_detail_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_119_portgroups_detail_get_member ... 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.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_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_disabled ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_disabled ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__remove_share_file ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_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.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.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test__setup_vmedia_for_boot_with_parameters ... ok ironic.tests.unit.api.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_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_enabled_individual_none ... ok ironic.tests.unit.drivers.modules.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.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.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_member ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_277_deploy_templates_deploy_template_id_patch_member ... ok ironic.tests.unit.drivers.modules.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.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.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_122_portgroups_portgroup_ident_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_122_portgroups_portgroup_ident_get_member ... ok ironic.tests.unit.api.test_acl.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_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_power_validate_fail ... ok ironic.tests.unit.drivers.modules.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.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.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_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.TestRBACModelBeforeScopes.test_rbac_legacy_279_deploy_templates_deploy_template_id_delete_admin ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_279_deploy_templates_deploy_template_id_delete_admin ... ok ironic.tests.unit.drivers.modules.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_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_automated_prepare_clean_wait ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_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.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCDeployPrivateMethodsTestCase.test_check_share_fs_mounted_exception ... ok ironic.tests.unit.drivers.modules.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_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.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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-2827b5a1-6daf-4866-a97b-a5310394919a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "0f530f27-41d3-45e9-a18f-d644d0c12e8d", "created_at": "2024-01-06T13:38:50.455157+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0f530f27-41d3-45e9-a18f-d644d0c12e8d", "rel": "self"}, {"href": "http://localhost/deploy_templates/0f530f27-41d3-45e9-a18f-d644d0c12e8d", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} API ACL Testing Path get /v1/deploy_templates/4f1f0f6d-8574-492c-b055-f2e254c590b9 GET: /v1/deploy_templates/4f1f0f6d-8574-492c-b055-f2e254c590b9 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f28447c7-c76e-480d-b837-dacd1c3168d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-f28447c7-c76e-480d-b837-dacd1c3168d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/ea4e0a06-9514-4cc7-8e29-448d9bcdb581 GET: /v1/deploy_templates/ea4e0a06-9514-4cc7-8e29-448d9bcdb581 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-92dd0039-b61d-4954-89f2-b7e8d617096a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "ea4e0a06-9514-4cc7-8e29-448d9bcdb581", "created_at": "2024-01-06T13:38:51.890630+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ea4e0a06-9514-4cc7-8e29-448d9bcdb581", "rel": "self"}, {"href": "http://localhost/deploy_templates/ea4e0a06-9514-4cc7-8e29-448d9bcdb581", "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-92dd0039-b61d-4954-89f2-b7e8d617096a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "ea4e0a06-9514-4cc7-8e29-448d9bcdb581", "created_at": "2024-01-06T13:38:51.890630+00:00", "updated_at": null, "name": "CUSTOM_DT1", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/ea4e0a06-9514-4cc7-8e29-448d9bcdb581", "rel": "self"}, {"href": "http://localhost/deploy_templates/ea4e0a06-9514-4cc7-8e29-448d9bcdb581", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} API ACL Testing Path patch /v1/deploy_templates/0b8b516c-3812-4d5f-bce1-d8d76d348f2f PATCH: /v1/deploy_templates/0b8b516c-3812-4d5f-bce1-d8d76d348f2f [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-aa72e97f-9b7c-4a44-8b10-118f6baf9b5c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "0b8b516c-3812-4d5f-bce1-d8d76d348f2f", "created_at": "2024-01-06T13:38:52.625085+00:00", "updated_at": "2024-01-06T13:38:52.936107+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0b8b516c-3812-4d5f-bce1-d8d76d348f2f", "rel": "self"}, {"href": "http://localhost/deploy_templates/0b8b516c-3812-4d5f-bce1-d8d76d348f2f", "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-aa72e97f-9b7c-4a44-8b10-118f6baf9b5c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "0b8b516c-3812-4d5f-bce1-d8d76d348f2f", "created_at": "2024-01-06T13:38:52.625085+00:00", "updated_at": "2024-01-06T13:38:52.936107+00:00", "name": "CUSTOM_MAGIC", "extra": {}, "links": [{"href": "http://localhost/v1/deploy_templates/0b8b516c-3812-4d5f-bce1-d8d76d348f2f", "rel": "self"}, {"href": "http://localhost/deploy_templates/0b8b516c-3812-4d5f-bce1-d8d76d348f2f", "rel": "bookmark"}], "steps": [{"interface": "raid", "step": "create_configuration", "args": {"logical_disks": []}, "priority": 10}]} API ACL Testing Path patch /v1/deploy_templates/19784fc8-cf1d-4193-90c4-00b3f5a3e093 PATCH: /v1/deploy_templates/19784fc8-cf1d-4193-90c4-00b3f5a3e093 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-25d91e03-86e4-428f-85f8-8f63a012a464 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-25d91e03-86e4-428f-85f8-8f63a012a464 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/345c49d2-6984-47b5-8ddc-321b4622adf6 PATCH: /v1/deploy_templates/345c49d2-6984-47b5-8ddc-321b4622adf6 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5c809231-653d-4b1e-9554-7288dab2e24a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-5c809231-653d-4b1e-9554-7288dab2e24a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/6c97582d-dea2-416f-9232-4eb42807451f DELETE: /v1/deploy_templates/6c97582d-dea2-416f-9232-4eb42807451f GOT:Response: 204 No Content Openstack-Request-Id: req-9e267bca-be8b-4677-9a35-50cd85781170 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-9e267bca-be8b-4677-9a35-50cd85781170 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/b4e44c02-3b66-4587-9284-9f61cf23e710 DELETE: /v1/deploy_templates/b4e44c02-3b66-4587-9284-9f61cf23e710 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.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.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.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.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.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-feb30df5-d88c-46a5-b794-63811d1a2d4a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-4d40b686-461d-48d0-ac84-9752afca7e2e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b7aaa202-eacf-475f-98d3-d85378b799f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a4014e0a-5037-4871-afaf-f95ca79ec25b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-5861672f-fd60-4dcd-8ecd-4bd5c0d0ab5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-38250f2c-215b-447a-b0a8-2bb41f0699a3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-10a993d2-5205-4249-9641-5d995260d2b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0cbbf6c2-6048-4fc8-87d4-668aecab5147 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ad9b6ea5-dedc-4ad0-9ac6-142f2bc82fe8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-1a08fcee-7925-4523-8cff-6450d18b1a1e X-Openstack-Ironic-Api-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-73026403-d532-4359-9eee-0e05d14fdd98 X-Openstack-Ironic-Api-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-23b0c7e1-15f7-4c14-9783-d93ea4677be3 X-Openstack-Ironic-Api-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-44a910e7-8d19-41d8-ad7a-4b791cfc31d1 X-Openstack-Ironic-Api-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-52fba4d3-88dc-43e9-bf94-bb1be74bf316 X-Openstack-Ironic-Api-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-a6114d1a-0e31-435c-bf21-f36de8fe4899 X-Openstack-Ironic-Api-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 ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_127_portgroups_portgroup_ident_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_127_portgroups_portgroup_ident_delete_admin ... ok ironic.tests.unit.conductor.test_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.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.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_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_disable_ramdisk ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test__do_node_clean_manual_disable_ramdisk ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_instance ... 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.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.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.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootTestCase.test_prepare_ramdisk_with_backup_bios ... ok ironic.tests.unit.conductor.test_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.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.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.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.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.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.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-95245a80-9ea7-46a6-9f3d-b81458410de4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-95245a80-9ea7-46a6-9f3d-b81458410de4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/091d95f4-969f-42af-bb6b-2e6b818a636e DELETE: /v1/deploy_templates/091d95f4-969f-42af-bb6b-2e6b818a636e GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-3e86ca04-8845-486a-b11f-635e1c2ac862 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-3e86ca04-8845-486a-b11f-635e1c2ac862 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:deploy_template:delete\", \"debuginfo\": null}"} API ACL Testing Path post /v1/chassis POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/190f780c-35da-4714-aa28-780588b6ac18 Openstack-Request-Id: req-cb6cf163-3094-438e-992d-1decc1b776d1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "190f780c-35da-4714-aa28-780588b6ac18", "created_at": "2024-01-06T13:38:57.288095+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/190f780c-35da-4714-aa28-780588b6ac18", "rel": "self"}, {"href": "http://localhost/chassis/190f780c-35da-4714-aa28-780588b6ac18", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/190f780c-35da-4714-aa28-780588b6ac18/nodes", "rel": "self"}, {"href": "http://localhost/chassis/190f780c-35da-4714-aa28-780588b6ac18/nodes", "rel": "bookmark"}]]} ACL Test GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/chassis/190f780c-35da-4714-aa28-780588b6ac18 Openstack-Request-Id: req-cb6cf163-3094-438e-992d-1decc1b776d1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "190f780c-35da-4714-aa28-780588b6ac18", "created_at": "2024-01-06T13:38:57.288095+00:00", "updated_at": null, "description": "test-chassis", "extra": {}, "links": [{"href": "http://localhost/v1/chassis/190f780c-35da-4714-aa28-780588b6ac18", "rel": "self"}, {"href": "http://localhost/chassis/190f780c-35da-4714-aa28-780588b6ac18", "rel": "bookmark"}], "nodes": [[{"href": "http://localhost/v1/chassis/190f780c-35da-4714-aa28-780588b6ac18/nodes", "rel": "self"}, {"href": "http://localhost/chassis/190f780c-35da-4714-aa28-780588b6ac18/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-e83fbdd1-a23e-48f8-ab72-7e9209efe75c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-e83fbdd1-a23e-48f8-ab72-7e9209efe75c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/chassis POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c9db0f96-2987-4107-a98f-7ca4d00fb1d7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-c9db0f96-2987-4107-a98f-7ca4d00fb1d7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:create\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis GET: /v1/chassis {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c5500c49-84f5-4bf7-9052-a947878183d0 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-c5500c49-84f5-4bf7-9052-a947878183d0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"chassis": [{"uuid": "e74c40e0-d825-11e2-a28f-0800200c9a66", "description": "data-center-1-chassis", "links": [{"href": "http://localhost/v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "self"}, {"href": "http://localhost/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/chassis GET: /v1/chassis {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-70c1edda-6ef7-4acc-814f-2baf7d81a065 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-70c1edda-6ef7-4acc-814f-2baf7d81a065 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis GET: /v1/chassis {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-367b6a97-7132-462d-8236-ec63029c9c90 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.TestRBACScoped.test_scoped_canary_131_nodes_portgroups_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_131_nodes_portgroups_get_member ... ok ironic.tests.unit.drivers.modules.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.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.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementFunctionsTestCase.test__restore_bios_config_failed ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_132_nodes_portgroups_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_132_nodes_portgroups_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.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.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.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.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.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.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.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.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.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.TestRBACModelBeforeScopes.test_rbac_legacy_290_chassis_detail_get_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_290_chassis_detail_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_134_nodes_portgroups_detail_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_134_nodes_portgroups_detail_get_member ... ok ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_avoid_repeatedly_resume_cleaning ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_avoid_repeatedly_resume_cleaning ... ok ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_all ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_automated_all ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_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.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.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.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.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.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.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.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_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_collect_logs ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_collect_logs ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_137_ports_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_137_ports_get_member ... 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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-367b6a97-7132-462d-8236-ec63029c9c90 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-c302b72a-42f5-4d91-9488-ec004b35acbc 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-06T13:39:01.048140+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-c302b72a-42f5-4d91-9488-ec004b35acbc 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-06T13:39:01.048140+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-acb24470-5f2b-44b2-8063-a96450879f3e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-acb24470-5f2b-44b2-8063-a96450879f3e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis/detail GET: /v1/chassis/detail {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1c059b73-fe1d-4429-9310-840f99395c7a 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-06T13:39:02.232056+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-1c059b73-fe1d-4429-9310-840f99395c7a 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-06T13:39:02.232056+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-1bd40fc4-710a-45cb-87e4-c77b941da873 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-06T13:39:02.832584+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-1bd40fc4-710a-45cb-87e4-c77b941da873 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-06T13:39:02.832584+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-4f5614af-2e16-4091-9911-8b9dc8c95368 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:get\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4f5614af-2e16-4091-9911-8b9dc8c95368 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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.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.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.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.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config ironic.tests.unit.drivers.modules.irmc.test_periodic_task.iRMCPeriodicTaskTestCase.test__query_raid_config_fgi_status_with_two_nodes_without_raid_config ... ok ironic.tests.unit.drivers.modules.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.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.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.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all_disable_ramdisk ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_all_disable_ramdisk ... ok ironic.tests.unit.drivers.modules.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.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.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.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_continue_from_last_cleaning ... ok ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_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.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.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_manual_first_step_async ... ok ironic.tests.unit.drivers.modules.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_141_ports_post_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_141_ports_post_observer ... ok ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot ironic.tests.unit.conductor.test_cleaning.DoNodeCleanTestCase.test_do_next_clean_step_oob_reboot ... ok ironic.tests.unit.api.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.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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-04b2f587-255d-42bb-8be7-f376eee38933 X-Openstack-Ironic-Api-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-7b890e31-6b29-42e8-acdf-f66416a3f307 X-Openstack-Ironic-Api-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-b692b763-dcb1-4968-a20c-d281d220ace7 X-Openstack-Ironic-Api-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-b6edce63-27b3-46b0-87f8-945f465c795f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-05623e88-27cf-4f3c-9c84-6570f49950e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-a89e5b9b-56f6-4bb3-abbd-df0616f47567 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-3d72e602-fb8e-4be5-9111-1b53e92add0f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-1d03af5c-5899-4e5e-b10c-29bf383a76f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-ac07e6b8-f083-4658-bffe-c1829cf9d066 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-46d4fc39-0cc8-474e-88e2-3d1826e4608f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-79cb4032-39c0-401c-a44b-d3e43c4456dd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-f7a9f6cb-d722-4cd6-83b0-577cf25611e4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-397d184f-e6b4-43b1-a9a9-473e96e0827e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-3f1cae0f-177d-4bb6-84a1-373dbfa954fa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8e7b1905-e43c-479f-bb96-efbe77465ee1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} API ACL Testing Path get /v1/ports/detail GET: /v1/ports/detail {} ironic.tests.unit.api.test_acl.TestRBACScoped.test_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.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.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.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_143_ports_detail_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_143_ports_detail_get_member ... ok ironic.tests.unit.conductor.test_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.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.conductor.test_manager.BootDeviceTestCase.test_get_boot_device ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device ... ok ironic.tests.unit.drivers.modules.network.test_common.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.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_scoped_canary_144_ports_detail_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_144_ports_detail_get_observer ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b954dfe3-620c-4cce-a37d-08f812546ef1 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-06T13:39:04.293432+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-b954dfe3-620c-4cce-a37d-08f812546ef1 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-06T13:39:04.293432+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-24f11ed7-f983-40f0-af72-7862d5d01d67 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-06T13:39:04.964320+00:00", "updated_at": "2024-01-06T13:39:05.216841+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-24f11ed7-f983-40f0-af72-7862d5d01d67 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-06T13:39:04.964320+00:00", "updated_at": "2024-01-06T13:39:05.216841+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-9601c174-3e5b-4f28-ac51-9c2b0751b3ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-9601c174-3e5b-4f28-ac51-9c2b0751b3ee X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-dab14ce5-8499-48d2-8d88-b29e1826a33a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-dab14ce5-8499-48d2-8d88-b29e1826a33a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-d8596302-6939-48fe-880b-9e8ffa49bba7 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-d8596302-6939-48fe-880b-9e8ffa49bba7 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-535ef4e6-395c-4c58-b24d-609ddfadba0d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-535ef4e6-395c-4c58-b24d-609ddfadba0d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:chassis:delete\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 DELETE: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e598fc4c-494f-4f17-80ee-0588ba66c350 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-e598fc4c-494f-4f17-80ee-0588ba66c350 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail ironic.tests.unit.conductor.test_manager.BootDeviceTestCase.test_get_boot_device_validate_fail ... ok ironic.tests.unit.drivers.modules.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.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.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_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.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.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_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.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_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.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.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.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.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.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_physnet1 ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_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.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.test_acl.TestRBACScoped.test_scoped_canary_149_ports_port_id_patch_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_149_ports_port_id_patch_member ... ok ironic.tests.unit.drivers.modules.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.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.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_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.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.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.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_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.TestRBACModelBeforeScopes.test_rbac_legacy_305_node_history_get_entry_observer ironic.tests.unit.api.test_acl.TestRBACModelBeforeScopes.test_rbac_legacy_305_node_history_get_entry_observer ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_152_ports_port_id_delete_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_152_ports_port_id_delete_member ... ok ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_001_values ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_001_values ... skipped 'These are fake reference values for YAML templating' ironic.tests.unit.api.test_acl.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.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid_attached_vifs ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test__get_free_portgroups_and_ports_portgroup_uuid_attached_vifs ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ignores_empty_portgroup ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_154_nodes_ports_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_154_nodes_ports_get_admin ... ok ironic.tests.unit.drivers.modules.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 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00b2fd7e-7799-46e5-af82-dc2162d5f44d 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": "8795b535-9711-401f-a69e-ef35ed43a984", "created_at": "2024-01-06T13:39:08.984813+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/8795b535-9711-401f-a69e-ef35ed43a984", "rel": "self"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-00b2fd7e-7799-46e5-af82-dc2162d5f44d 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": "8795b535-9711-401f-a69e-ef35ed43a984", "created_at": "2024-01-06T13:39:08.984813+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/8795b535-9711-401f-a69e-ef35ed43a984", "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-7287998f-bf9b-4199-b846-da6e4fd089d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-7287998f-bf9b-4199-b846-da6e4fd089d5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6730601d-b3b5-4458-98c2-cda85c3b9304 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": "f482fca7-e701-417e-80a0-d9a578a83111", "created_at": "2024-01-06T13:39:10.692720+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f482fca7-e701-417e-80a0-d9a578a83111", "rel": "self"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6730601d-b3b5-4458-98c2-cda85c3b9304 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": "f482fca7-e701-417e-80a0-d9a578a83111", "created_at": "2024-01-06T13:39:10.692720+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/f482fca7-e701-417e-80a0-d9a578a83111", "rel": "self"}]}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/85a1e0cc-c4b1-4f00-a689-33b9069926cf GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/85a1e0cc-c4b1-4f00-a689-33b9069926cf {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b606c779-895d-4536-a5b4-dc3944c9f7af X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "85a1e0cc-c4b1-4f00-a689-33b9069926cf", "created_at": "2024-01-06T13:39:11.368122+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/85a1e0cc-c4b1-4f00-a689-33b9069926cf", "rel": "self"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-b606c779-895d-4536-a5b4-dc3944c9f7af X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "85a1e0cc-c4b1-4f00-a689-33b9069926cf", "created_at": "2024-01-06T13:39:11.368122+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/85a1e0cc-c4b1-4f00-a689-33b9069926cf", "rel": "self"}]} API ACL Testing Path get /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c708aea3-0f5e-4ad3-b2f7-f4d654af803e GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/c708aea3-0f5e-4ad3-b2f7-f4d654af803e {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-97d1638c-6f4f-4f78-89d2-3d8cc53221f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-97d1638c-6f4f-4f78-89d2-3d8cc53221f3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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/980c8e7c-e711-4bf2-a1a5-cf69363a2e74 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/980c8e7c-e711-4bf2-a1a5-cf69363a2e74 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0acf2558-c243-433f-ae99-2360cfbc08c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "980c8e7c-e711-4bf2-a1a5-cf69363a2e74", "created_at": "2024-01-06T13:39:13.831779+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/980c8e7c-e711-4bf2-a1a5-cf69363a2e74", "rel": "self"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0acf2558-c243-433f-ae99-2360cfbc08c6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "980c8e7c-e711-4bf2-a1a5-cf69363a2e74", "created_at": "2024-01-06T13:39:13.831779+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/980c8e7c-e711-4bf2-a1a5-cf69363a2e74", "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-44f324ae-0cec-423b-8453-5c4eadf2547b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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_scoped_canary_155_nodes_ports_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_155_nodes_ports_get_member ... ok ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_nothing_free ... ok ironic.tests.unit.api.test_acl.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.TestRBACScoped.test_scoped_canary_156_nodes_ports_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_156_nodes_ports_get_observer ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_allowed_in_maintenance ... ok ironic.tests.unit.drivers.modules.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.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.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.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d30b392e-1967-4364-93ea-a3613f51fac8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-12e57d43-1295-49dc-b06c-042092a9f60f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-3efb0872-c965-466d-b153-4f8dec3b131f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-f20d7369-eeba-457b-b7e4-0636fde601c5 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1ef3aca1-1a0a-47a3-b8ad-415c36bcffd4 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-829d9938-0d46-4884-9acf-66214e58da10 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-19b29277-5c5e-4daf-821e-3b7a89e73e97 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cc23e638-7ac9-4b89-8694-25766394ee7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c0dc2128-c41c-4886-9a04-90a73bde80a2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-88827a13-d2e2-49bb-b80b-83e11725ed68 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8921eb86-44f6-4488-8266-73c46fb0fe25 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-94393405-4759-4748-823e-6b15200a07a5 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-fcb034ce-aaed-4350-a57f-03f94762f6ca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-146657ad-2c6c-4b66-aacd-bafddb919f35 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-a2a370a0-50d7-414b-a791-17b06c12136f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 {} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_157_nodes_ports_detail_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_157_nodes_ports_detail_get_admin ... ok ironic.tests.unit.drivers.modules.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.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.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.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.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 ironic.tests.unit.drivers.modules.network.test_common.TestCommonFunctions.test_get_free_port_like_object_ports_physnet_match_first2 ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_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.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.TestRBACProjectScoped.test_project_scoped_006_lessee_admin_can_post_nodes ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_006_lessee_admin_can_post_nodes ... ok ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_console_disable_fail ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.TestRBACScoped.test_scoped_canary_161_portgroups_ports_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_161_portgroups_ports_get_member ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off ironic.tests.unit.conductor.test_manager.DestroyNodeTestCase.test_destroy_node_power_off ... ok ironic.tests.unit.drivers.modules.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.api.test_acl.TestRBACScoped.test_scoped_canary_163_portgroups_ports_detail_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_163_portgroups_ports_detail_get_admin ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_address_VIF_MAC_update_fail ... ok ironic.tests.unit.api.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_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.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.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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id ... ok ironic.tests.unit.conductor.test_manager.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.api.test_acl.TestRBACScoped.test_scoped_canary_165_portgroups_ports_detail_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_165_portgroups_ports_detail_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_fail ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_client_id_no_vif_id ... ok ironic.tests.unit.conductor.test_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_scoped_canary_166_volume_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_166_volume_get_admin ... ok ironic.tests.unit.drivers.modules.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.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.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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-44f324ae-0cec-423b-8453-5c4eadf2547b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-3f8f1f83-6bca-4d14-82e6-2ae4c36201af X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3f8f1f83-6bca-4d14-82e6-2ae4c36201af X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-f47e5468-711a-4d02-b2a9-35b7697a1f9c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f47e5468-711a-4d02-b2a9-35b7697a1f9c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7da27e43-d6d5-456b-ab31-913fa4219faa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7da27e43-d6d5-456b-ab31-913fa4219faa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a33b27dd-43f8-4e30-a31e-cf2fa3fed294 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a33b27dd-43f8-4e30-a31e-cf2fa3fed294 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e4d9a272-37f5-4191-9e0c-81318ce32866 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e4d9a272-37f5-4191-9e0c-81318ce32866 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ef258d4b-6635-4aa6-b44e-89b99d4f6c6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ef258d4b-6635-4aa6-b44e-89b99d4f6c6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7170104b-c381-49e4-ab61-0caafcb71411 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7170104b-c381-49e4-ab61-0caafcb71411 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-9b290fb9-735b-4ef3-af18-73ccaf76fb58 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9b290fb9-735b-4ef3-af18-73ccaf76fb58 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.conductor.test_manager.DestroyPortTestCase.test_destroy_port ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port ... 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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_nopxe_noportgroup ... ok ironic.tests.unit.conductor.test_manager.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_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.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.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.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.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.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.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.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.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.DestroyPortTestCase.test_destroy_port_node_locked ironic.tests.unit.conductor.test_manager.DestroyPortTestCase.test_destroy_port_node_locked ... 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.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.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.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.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.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_novif_pxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.conductor.test_manager.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.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_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_disappears ... 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_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_acquire_node_locked ... ok GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c217ddb1-581e-4f82-92f3-e7111d8774a1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c217ddb1-581e-4f82-92f3-e7111d8774a1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/nodes POST: /v1/nodes {'name': 'node', 'driver': 'fake-driverz'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b1e1f98e-db45-4ddf-a3b8-f571adfed588 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:create\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b1e1f98e-db45-4ddf-a3b8-f571adfed588 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0dda6ba6-28d5-468f-aea2-c3658d2cd2e0 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": "d351def2-a1e4-41da-9b94-f55ffdde677a", "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-0dda6ba6-28d5-468f-aea2-c3658d2cd2e0 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": "d351def2-a1e4-41da-9b94-f55ffdde677a", "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-a9d2002a-0369-435e-8433-997685c50c6d 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": "a3bdf421-d134-4705-a0b2-d0df8e93b90c", "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-a9d2002a-0369-435e-8433-997685c50c6d 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": "a3bdf421-d134-4705-a0b2-d0df8e93b90c", "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-968c5c9e-a7e1-4e48-bd67-ac4e543652eb 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": "77e90e42-121b-4cf8-bdd5-e10f19871dbf", "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-968c5c9e-a7e1-4e48-bd67-ac4e543652eb 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": "77e90e42-121b-4cf8-bdd5-e10f19871dbf", "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.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.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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e423620d-012e-4d9f-84f2-10da908666f8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-a2230328-7702-4e6e-8767-ebc3cf567f71 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-ee35cdbf-2aab-424f-9370-e3946f76b7a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-cfe926e4-63f7-4993-a5da-2b8a77843738 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b338ffd2-d314-4ae1-8e62-4df72e2317c9 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-3c518117-5c62-4fef-95d2-91f9dca1349c X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-9004db03-0f48-4c4f-a840-b0fa6d33eb9b X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-647acdc4-990c-4a34-900b-23a278a62e12 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-e2008d9e-6e20-4135-894c-bec4e9e90b53 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-e6c2c6cf-229d-4899-af99-0dab60b53b49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-4e0e5d79-7732-4518-a686-989aceaf0d37 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0370c9bc-5388-4bd8-ac15-af9938156a8b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8830f622-dc79-4633-9f9b-2e534dad86f8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0f268d18-9e60-4ebe-9a74-bb80ab327fe4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d1830e4c-30a7-464e-9067-218bbef0dbf5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'} 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_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.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.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_maintenance_after_lock ... 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.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.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_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_not_mapped ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_018_lessee_manager_can_get_node ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_018_lessee_manager_can_get_node ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_timeout ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_nopxe_portgroup_standalone_ports ... ok ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit ironic.tests.unit.conductor.test_manager.ManagerCheckDeployTimeoutsTestCase.test_worker_limit ... 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.TestRBACProjectScoped.test_project_scoped_019_lessee_member_can_get_node ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_019_lessee_member_can_get_node ... ok ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test__sync_power_state_multiple_nodes ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_noportgroup ... ok ironic.tests.unit.conductor.test_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.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_in_deploywait_on_acquire ... 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.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.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.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_port_changed_vif_pxe_portgroup_nostandalone_ports ... ok ironic.tests.unit.conductor.test_manager.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.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.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.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.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.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.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_node_not_mapped ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address ... ok ironic.tests.unit.api.test_acl.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.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node ... 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.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed ironic.tests.unit.conductor.test_manager.ManagerSyncPowerStatesTestCase.test_single_node_adopt_failed ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-ae3b8314-3984-49d7-8444-4ef9965ea957 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": "2af84f92-7930-459a-8521-4db072ec518c", "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-ae3b8314-3984-49d7-8444-4ef9965ea957 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": "2af84f92-7930-459a-8521-4db072ec518c", "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-13841c93-4487-47ba-9493-1a66d8b0e563 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": "a0196a16-e9a2-4ba1-9ce8-faf724bf9353", "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-13841c93-4487-47ba-9493-1a66d8b0e563 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": "a0196a16-e9a2-4ba1-9ce8-faf724bf9353", "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-86eee188-8015-4966-8043-f1e653716517 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": "9bae7898-b7b6-438a-8200-7d32c3cc4595", "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-86eee188-8015-4966-8043-f1e653716517 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": "9bae7898-b7b6-438a-8200-7d32c3cc4595", "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-4d326eed-25c2-4a8e-9004-70f4f218bf1d 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": "f0cf65a3-9407-4aa3-8976-46f00f8f1abf", "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-4d326eed-25c2-4a8e-9004-70f4f218bf1d 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": "f0cf65a3-9407-4aa3-8976-46f00f8f1abf", "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-667a46ae-d19c-4376-a3a3-d5282e842486 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": "66e72a59-8903-4a2e-97c5-bd5f1fb99bb8", "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-667a46ae-d19c-4376-a3a3-d5282e842486 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": "66e72a59-8903-4a2e-97c5-bd5f1fb99bb8", "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-1420a83d-b7bd-4f41-989b-2e4e8b6c76c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"nodes": []} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1420a83d-b7bd-4f41-989b-2e4e8b6c76c9 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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_address_no_vif ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.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_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.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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6b6b1c6d-8047-4abf-b531-9ea1305f981e 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-06T13:39:30.307807+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": 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-6b6b1c6d-8047-4abf-b531-9ea1305f981e 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-06T13:39:30.307807+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": 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-9e099f7e-61af-4ea0-b1aa-903b01d1bfd4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-9e099f7e-61af-4ea0-b1aa-903b01d1bfd4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_ipmi ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_nopxe_ports ... ok ironic.tests.unit.api.test_acl.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.test_acl.TestRBACScoped.test_scoped_canary_181_volume_volume_connector_id_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_181_volume_volume_connector_id_delete_admin ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_nostandalone_ports_vif_pxe_ports ... ok ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_manual_management ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_manual_management ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_remove_address ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_noports ... ok ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp ironic.tests.unit.conductor.test_manager.ManagerTestProperties.test_driver_properties_snmp ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4192be42-2622-4e34-8fe9-e15de438caca 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-06T13:39:32.149664+00:00", "updated_at": "2024-01-06T13:39:32.211078+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": "73700173-dd27-468a-86ea-5378fae9c382", "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": "73700173-dd27-468a-86ea-5378fae9c382", "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-4192be42-2622-4e34-8fe9-e15de438caca 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-06T13:39:32.149664+00:00", "updated_at": "2024-01-06T13:39:32.211078+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": "73700173-dd27-468a-86ea-5378fae9c382", "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": "73700173-dd27-468a-86ea-5378fae9c382", "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-3a5d61af-c70c-4eac-9289-bc8a7dbc1fed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-3a5d61af-c70c-4eac-9289-bc8a7dbc1fed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-ad67b1f7-027f-4f41-b168-4942035ec7bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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.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.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.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.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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_nopxe_ports ... ok ironic.tests.unit.api.test_acl.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 ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ad67b1f7-027f-4f41-b168-4942035ec7bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-42cfc161-c389-49d6-8898-7721e7c9d954 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-06T13:39:33.835546+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": 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-42cfc161-c389-49d6-8898-7721e7c9d954 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-06T13:39:33.835546+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": 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.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_update_portgroup_standalone_ports_vif_pxe_ports ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_ok ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_183_volume_volume_connector_id_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_183_volume_volume_connector_id_delete_observer ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach ... ok ironic.tests.unit.conductor.test_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.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.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-7d20d079-aca9-4740-97bd-06b845e45047 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-06T13:39:34.427366+00:00", "updated_at": "2024-01-06T13:39:34.492296+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": "0da159b6-0ff7-4f87-9bbc-e46d0c4927d1", "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": "0da159b6-0ff7-4f87-9bbc-e46d0c4927d1", "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-7d20d079-aca9-4740-97bd-06b845e45047 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-06T13:39:34.427366+00:00", "updated_at": "2024-01-06T13:39:34.492296+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": "0da159b6-0ff7-4f87-9bbc-e46d0c4927d1", "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": "0da159b6-0ff7-4f87-9bbc-e46d0c4927d1", "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-c001a87a-e216-490d-a9f6-0cec6a5a00c0 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-06T13:39:35.036081+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": 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-06T13:39:35.097140+00:00", "updated_at": "2024-01-06T13:39:35.160871+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": "b24c76a9-07c1-4c35-addf-23ebfd9638da", "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": "b24c76a9-07c1-4c35-addf-23ebfd9638da", "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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_active_node_failure ... ok ironic.tests.unit.api.test_acl.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_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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_failure ... ok ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c001a87a-e216-490d-a9f6-0cec6a5a00c0 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-06T13:39:35.036081+00:00", "updated_at": null, "automated_clean": null, "bios_interface": null, "boot_interface": null, "boot_mode": null, "clean_step": {}, "conductor_group": "", "console_enabled": false, "console_interface": null, "deploy_interface": null, "deploy_step": {}, "description": null, "driver": "fake-hardware", "driver_info": {"foo": "bar", "fake_password": "******"}, "driver_internal_info": {"private_state": "secret value"}, "extra": {}, "fault": 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-06T13:39:35.097140+00:00", "updated_at": "2024-01-06T13:39:35.160871+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": "b24c76a9-07c1-4c35-addf-23ebfd9638da", "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": "b24c76a9-07c1-4c35-addf-23ebfd9638da", "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.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.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9ce4f1c6-f1c8-4ae9-a397-fc3a3fec16f2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-e398d44d-7af9-4737-9f09-a467e3b6cbad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-7144b720-0844-4f94-ab9b-16df35fa1865 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-710c1701-e892-400d-8ce2-77b5400eb08f X-Openstack-Ironic-Api-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-61f0de8d-a1ed-4092-8d46-d66769a9597f X-Openstack-Ironic-Api-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-dc68eb29-0584-4811-9f15-e2679451ebb6 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b8a46ac1-5f37-4e02-b785-c5b3c0e4ad5b X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-f73499b1-6389-4981-9d1e-dc2d4c99381b X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-f1ec256f-00a8-4fda-bf7b-213e366a887d X-Openstack-Ironic-Api-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-1065fc80-51a4-41d8-98c7-1689c224ebe4 X-Openstack-Ironic-Api-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-87bf014d-b95a-476e-8038-de488d460c10 X-Openstack-Ironic-Api-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-4ca38e8b-5fc7-4436-aae3-b0a031d6e67c X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-7ca1e63d-5361-48c0-8058-2551b83317b3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1277c8cd-c695-4054-afd4-c13e7a1d90eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} 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_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.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.api.test_acl.TestRBACScoped.test_scoped_canary_187_volume_targets_post_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_187_volume_targets_post_admin ... ok ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_portgroup_physnet_inconsistent ... ok ironic.tests.unit.conductor.test_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.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.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_attach_update_port_exception ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_188_volume_targets_post_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_188_volume_targets_post_member ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_return_other_state ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-da085175-0371-45c8-baa8-5f1193d6130e 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-06T13:39:36.161761+00:00", "updated_at": "2024-01-06T13:39:36.257479+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": "09417976-7208-496f-bc31-213ebeb590d0", "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": "09417976-7208-496f-bc31-213ebeb590d0", "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-da085175-0371-45c8-baa8-5f1193d6130e 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-06T13:39:36.161761+00:00", "updated_at": "2024-01-06T13:39:36.257479+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": "09417976-7208-496f-bc31-213ebeb590d0", "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": "09417976-7208-496f-bc31-213ebeb590d0", "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-4301371e-79fc-46a2-b7d8-577d4d68d6cf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"nodes": []} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4301371e-79fc-46a2-b7d8-577d4d68d6cf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"nodes": []} API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 PATCH: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a6e0030e-7f6c-4ccf-960c-28c50b88e1bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a6e0030e-7f6c-4ccf-960c-28c50b88e1bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_033_owner_manager_can_patch_node_extra ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_033_owner_manager_can_patch_node_extra ... ok ironic.tests.unit.api.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_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.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.TestRBACProjectScoped.test_project_scoped_034_owner_member_can_patch_node_extra ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_034_owner_member_can_patch_node_extra ... ok ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail ironic.tests.unit.conductor.test_manager.NodeInspectHardware.test_inspect_hardware_validate_fail ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_191_volume_volume_target_id_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_191_volume_volume_target_id_get_member ... ok ironic.tests.unit.drivers.modules.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.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.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.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure ironic.tests.unit.drivers.modules.network.test_common.TestNeutronVifPortIDMixin.test_vif_detach_active_node_failure ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_192_volume_volume_target_id_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_192_volume_volume_target_id_get_observer ... ok ironic.tests.unit.drivers.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_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.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.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.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.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.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.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.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.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.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.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.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.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__clear_vif_from_port_like_obj_in_internal_info_port ... ok ironic.tests.unit.api.test_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.conductor.test_manager.SensorsTestCase.test___send_sensor_data ironic.tests.unit.conductor.test_manager.SensorsTestCase.test___send_sensor_data ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_195_volume_volume_target_id_patch_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_195_volume_volume_target_id_patch_observer ... ok ironic.tests.unit.drivers.modules.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.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.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.test_acl.TestRBACScoped.test_scoped_canary_196_volume_volume_target_id_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_196_volume_volume_target_id_delete_admin ... ok ironic.tests.unit.drivers.modules.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.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.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.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.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__get_vif_id_by_port_like_obj_not_attached ... ok ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test__save_vif_to_port_like_obj_port ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_198_volume_volume_target_id_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_198_volume_volume_target_id_delete_observer ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non ironic.tests.unit.conductor.test_manager.SensorsTestCase.test__filter_out_unsupported_types_non ... 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-75b02f81-8541-4aa3-8885-5d9f81444d72 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-75b02f81-8541-4aa3-8885-5d9f81444d72 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-65f0e460-519c-4d6e-bddb-f66a7552c13d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-65f0e460-519c-4d6e-bddb-f66a7552c13d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5d59fc6d-9c27-49ff-b953-9151010adf33 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5d59fc6d-9c27-49ff-b953-9151010adf33 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-1a71ff20-347e-4fdf-b9e6-f121af4a3490 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1a71ff20-347e-4fdf-b9e6-f121af4a3490 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-4f0cd4a5-4a9a-489b-9810-a82aa2b42c1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4f0cd4a5-4a9a-489b-9810-a82aa2b42c1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-f37aa75e-e29b-4fa9-a423-6638ac408664 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f37aa75e-e29b-4fa9-a423-6638ac408664 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-9ccdd1a7-22b1-44d3-91e8-1fcdf7cdd426 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_extra\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9ccdd1a7-22b1-44d3-91e8-1fcdf7cdd426 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-3bc30d4e-9084-42b3-bb6f-af8e7b7d2c10 X-Openstack-Ironic-Api-Maximum-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-3bc30d4e-9084-42b3-bb6f-af8e7b7d2c10 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_get_current_vif_internal_info_cleaning ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_041_owner_admin_can_change_drivers ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_041_owner_admin_can_change_drivers ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_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_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.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.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.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.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e8d7316e-2167-4b1b-a85a-8b3ca88bf860 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-85f3c821-6eeb-47d5-9328-ea3c349a22b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-f1b484da-0cfd-44de-8804-fc74cc66e777 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b5a5f133-3135-4e90-8fa9-879dafa0395f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c09e8e54-9cd1-4966-98e6-ea286e81d7df X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-bfacce08-2111-4aee-bb78-df4b7d763801 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0da89915-32ea-4265-851b-ed7828329d8f X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-79b10b1a-8503-46c0-be50-82128de54c8f X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-adabc0f1-173e-4cf1-9c30-b38fc4d460e5 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a15f33d7-37ef-4140-898d-3b99982031f2 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-13527483-d9fc-44be-b7b5-9c711240ef39 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-e99db6de-9be4-43e8-b9d7-7591f8645817 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-2485b7fb-2694-473a-8a67-e5117a6ad985 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8ee18a4c-a18c-40df-aa3b-5a0109facf80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 {} 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.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.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.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.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.TestRBACProjectScoped.test_project_scoped_043_owner_member_can_patch_all_the_things ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_043_owner_member_can_patch_all_the_things ... ok ironic.tests.unit.drivers.modules.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_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.network.test_common.TestVifPortIDMixin.test_vif_list_internal ironic.tests.unit.drivers.modules.network.test_common.TestVifPortIDMixin.test_vif_list_internal ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_203_nodes_volume_connectors_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_203_nodes_volume_connectors_get_member ... ok ironic.tests.unit.drivers.modules.network.test_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_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_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.test_acl.TestRBACScoped.test_scoped_canary_204_nodes_volume_connectors_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_204_nodes_volume_connectors_get_observer ... ok ironic.tests.unit.drivers.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_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.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.TestRBACScoped.test_scoped_canary_205_nodes_volume_targets_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_205_nodes_volume_targets_get_admin ... ok ironic.tests.unit.drivers.modules.redfish.test_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.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.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.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.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_maintenance ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying_failed ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_apply_conf_post_reboot_deploying_failed ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_207_nodes_volume_targets_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_207_nodes_volume_targets_get_observer ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.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_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.TestRBACScoped.test_scoped_canary_208_drivers_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_208_drivers_get_admin ... ok ironic.tests.unit.drivers.modules.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 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-e79b3c74-72ce-482c-ac87-851a1205b21d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e79b3c74-72ce-482c-ac87-851a1205b21d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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'}] GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1d79758a-92dc-4d9d-9bd1-82d89710ee96 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1d79758a-92dc-4d9d-9bd1-82d89710ee96 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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'}] GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-79173c5f-06ea-42b3-9904-2293f3865a07 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-79173c5f-06ea-42b3-9904-2293f3865a07 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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'}] GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-841a91b5-6e5a-4c4c-80ba-5ea55c5fa711 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-841a91b5-6e5a-4c4c-80ba-5ea55c5fa711 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e7e119e9-3f38-47a1-b381-6620249f8374 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e7e119e9-3f38-47a1-b381-6620249f8374 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ec892807-8133-4af3-89a4-b1cc4491f548 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:lessee\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ec892807-8133-4af3-89a4-b1cc4491f548 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-19b50190-1161-4c79-9c68-c13568a9f1c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-19b50190-1161-4c79-9c68-c13568a9f1c9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d9bf25f2-321d-4fd7-93eb-5c453bfc3cd4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.TestRBACScoped.test_scoped_canary_209_drivers_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_209_drivers_get_member ... ok ironic.tests.unit.drivers.modules.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.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.api.test_acl.TestRBACScoped.test_scoped_canary_210_drivers_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_210_drivers_get_observer ... ok ironic.tests.unit.drivers.modules.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_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.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.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.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_050_owner_manager_can_change_lessee ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_050_owner_manager_can_change_lessee ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_212_drivers_driver_name_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_212_drivers_driver_name_get_member ... ok ironic.tests.unit.drivers.modules.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.api.test_acl.TestRBACProjectScoped.test_project_scoped_051_owner_admin_cannot_change_owner ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_051_owner_admin_cannot_change_owner ... ok ironic.tests.unit.drivers.modules.redfish.test_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.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.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_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.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_cache_bios_settings ... ok GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-fc332466-7ab3-42d4-b685-e18b88940adb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-fc00abc7-8a63-4d08-b0d4-792b39147247 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-02f133b9-ef3f-40f2-b080-d0e28e490246 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-846328e9-eac4-4b19-a6a3-99f0d80811e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-9a819f4d-f8b3-4dc8-abc2-a3c5965cdf75 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-b6de78a2-c734-4613-af65-c95509fe02bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-4dd70522-c081-4b60-abce-659eba552351 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-1bb37684-874a-4172-9559-62658cf22349 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-b8ebc6c8-2ba1-4c78-b3bb-c82e28db3155 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers GET: /v1/drivers {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-dc32e821-4878-468c-8f5d-109d040ae282 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers GET: /v1/drivers {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6f1567f6-f475-49e1-b361-908edbd0d59f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz GET: /v1/drivers/fake-driverz {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-c12451c2-4861-4de5-82f2-02d30c317338 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz GET: /v1/drivers/fake-driverz {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0f6a3628-231e-4cc0-8f22-824348445faf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers/fake-driverz GET: /v1/drivers/fake-driverz {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-99b415ae-b240-4df2-a47f-87c6e15ea38b X-Openstack-Ironic-Api-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 {} 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_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_error ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_215_drivers_properties_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_215_drivers_properties_get_member ... ok ironic.tests.unit.drivers.modules.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_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.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting ironic.tests.unit.conductor.test_manager.ServiceDoNodeDeployTestCase.test_do_node_deploy_rebuild_active_state_waiting ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_216_drivers_properties_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_216_drivers_properties_get_observer ... ok ironic.tests.unit.drivers.modules.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.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_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_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_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.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.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.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_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 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.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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-d9bf25f2-321d-4fd7-93eb-5c453bfc3cd4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-9a709c59-f864-4700-be2b-cb008af0e995 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9a709c59-f864-4700-be2b-cb008af0e995 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-24e8df02-b3be-4a87-ae16-a5e8b4e4532a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-24e8df02-b3be-4a87-ae16-a5e8b4e4532a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-4433f4be-abd7-46b2-9f4d-b2a10992b175 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4433f4be-abd7-46b2-9f4d-b2a10992b175 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-8f6be07f-ff5a-4d72-9230-c542076e09f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:owner\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8f6be07f-ff5a-4d72-9230-c542076e09f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-fe7ffba4-9d1f-4a29-af09-0b043f158746 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-fe7ffba4-9d1f-4a29-af09-0b043f158746 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-cdf53129-4f96-4b7f-9a67-39e573c14934 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-cdf53129-4f96-4b7f-9a67-39e573c14934 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-173a04e2-e8ad-4fb1-befe-c52706a83916 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:driver_info\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-173a04e2-e8ad-4fb1-befe-c52706a83916 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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'}}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c16b5cde-f6ad-4d81-bf16-ad7a85b98287 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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_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.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.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.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.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.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.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_factory_reset_step_pre_reboot_deploying ... ok ironic.tests.unit.api.test_acl.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_222_drivers_vendor_passthru_methods_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_222_drivers_vendor_passthru_methods_get_observer ... ok ironic.tests.unit.drivers.modules.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.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.redfish.test_bios.RedfishBiosTestCase.test_get_properties ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_get_properties ... 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.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.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.api.test_acl.TestRBACScoped.test_scoped_canary_224_drivers_vendor_passthru_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_224_drivers_vendor_passthru_get_member ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_loading_error ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosTestCase.test_loading_error ... ok ironic.tests.unit.api.test_acl.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.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.TestRBACScoped.test_scoped_canary_225_drivers_vendor_passthru_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_225_drivers_vendor_passthru_get_observer ... ok ironic.tests.unit.drivers.modules.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.api.test_acl.TestRBACScoped.test_scoped_canary_226_drivers_vendor_passthru_post_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_226_drivers_vendor_passthru_post_admin ... ok ironic.tests.unit.drivers.modules.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.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.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.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_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.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_notification_utils.ProvisionNotifyTestCase.test_mask_secrets ironic.tests.unit.conductor.test_notification_utils.ProvisionNotifyTestCase.test_mask_secrets ... ok GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-f67a5037-eba4-4b88-9ca1-1fa52b77d64a X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a6197bd0-a1de-4d4b-bfa6-89a9a9b38d4d X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-e7f1eb32-7754-4971-8fd6-404020e8fdc3 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-5a525c31-2990-4535-921d-26a09d4eb767 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-5ec0be7f-65f7-41ff-a630-4c0adb78425e X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-654dcfed-3aee-4ccd-b3c9-de921726a3e3 X-Openstack-Ironic-Api-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-ccdba07d-013a-4ca3-92dd-ee35ae2b2fbb X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-af9028ab-76db-4e67-a6aa-4d8766f278b3 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-93337c3d-3ae1-4197-ad57-95851e0ca597 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8f61cb87-b51d-4b51-8004-82b277abc584 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a5a4140b-3e44-42d4-873c-05d5cc2cd498 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-714bad85-05cc-4977-b049-141fef12e78b X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-5b94a6ac-0e6c-419e-b92b-7d8d756c7f46 X-Openstack-Ironic-Api-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.TestRBACScoped.test_scoped_canary_227_drivers_vendor_passthru_post_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_227_drivers_vendor_passthru_post_member ... ok ironic.tests.unit.drivers.modules.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.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_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_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_notify_exc ... ok ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test__insert_vmedia_bad_device ... ok ironic.tests.unit.api.test_acl.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_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test__emit_conductor_node_notification_known_payload_exc ... ok ironic.tests.unit.drivers.modules.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_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_notification_utils.TestNotificationUtils.test_emit_console_notification ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_console_notification ... 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.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_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.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_notification_utils.TestNotificationUtils.test_emit_power_set_notification ironic.tests.unit.conductor.test_notification_utils.TestNotificationUtils.test_emit_power_set_notification ... ok ironic.tests.unit.drivers.modules.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.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.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_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.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.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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c16b5cde-f6ad-4d81-bf16-ad7a85b98287 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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': []}}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-75a6fe2d-8dce-4219-bb08-15e59b724b12 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:network_data\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-75a6fe2d-8dce-4219-bb08-15e59b724b12 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-313b8dba-c39c-4f12-bc37-43793a12df14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:name\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-313b8dba-c39c-4f12-bc37-43793a12df14 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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'}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b3d1bc4f-673c-424b-95a9-a4c967652fe7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update:retired\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b3d1bc4f-673c-424b-95a9-a4c967652fe7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-1e80b3b9-d232-4074-b769-bf9b9bd80657 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1e80b3b9-d232-4074-b769-bf9b9bd80657 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-5788dc32-8ff9-4ec3-8beb-052c3c10a9fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5788dc32-8ff9-4ec3-8beb-052c3c10a9fe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-4bb926c2-c430-46c7-af79-40fb7abe321d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4bb926c2-c430-46c7-af79-40fb7abe321d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-01dbbafe-ef5d-4028-bcc8-70f00e75933d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-01dbbafe-ef5d-4028-bcc8-70f00e75933d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 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.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_only_enabled ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_only_enabled ... ok ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_ramdisk ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_clean_up_instance_ramdisk ... ok ironic.tests.unit.conductor.test_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.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.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.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.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_off ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_priority_override_off ... ok ironic.tests.unit.drivers.modules.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.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.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_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_not_inserted ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_not_inserted ... ok ironic.tests.unit.api.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.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_unsorted ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test__get_verify_steps_unsorted ... ok ironic.tests.unit.drivers.modules.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.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_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_unknown ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_eject_vmedia_unknown ... 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_steps.NodeVerifyStepsTestCase.test_execute_verify_step ironic.tests.unit.conductor.test_steps.NodeVerifyStepsTestCase.test_execute_verify_step ... 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.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock ... 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.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.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.TestRBACScoped.test_scoped_canary_236_nodes_bios_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_236_nodes_bios_get_observer ... ok ironic.tests.unit.drivers.modules.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.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.api.test_acl.TestRBACProjectScoped.test_project_scoped_069_owner_admin_cannot_delete_nodes ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_069_owner_admin_cannot_delete_nodes ... ok ironic.tests.unit.conductor.test_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.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_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.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.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.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.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.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.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.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.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.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.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.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.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_lock_get_voltgt_exception ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_239_nodes_bios_bios_setting_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_239_nodes_bios_bios_setting_get_observer ... ok ironic.tests.unit.drivers.modules.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.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.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.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 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1778d1d3-a733-4a79-b9b5-8efcbf41cabb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1778d1d3-a733-4a79-b9b5-8efcbf41cabb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-fc852663-5c4a-486b-8278-c1cf5397d877 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-fc852663-5c4a-486b-8278-c1cf5397d877 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-8b03c247-b0fc-43f0-9bd7-b1322551d989 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-8b03c247-b0fc-43f0-9bd7-b1322551d989 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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'}}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a5e17935-33d2-4142-995f-1af04d0db1ed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:update_instance_info\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a5e17935-33d2-4142-995f-1af04d0db1ed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-ab1ce630-5b87-4bbd-92c9-7d894b34c3e7 X-Openstack-Ironic-Api-Maximum-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-ab1ce630-5b87-4bbd-92c9-7d894b34c3e7 X-Openstack-Ironic-Api-Maximum-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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-160843e8-68c6-4f97-8451-501ccd5f7e62 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-160843e8-68c6-4f97-8451-501ccd5f7e62 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ba1bf584-17a6-4bc5-81f8-de9fcad27270 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ba1bf584-17a6-4bc5-81f8-de9fcad27270 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-564b31db-2350-4b16-93db-f41bfe0f9c60 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-564b31db-2350-4b16-93db-f41bfe0f9c60 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.api.test_acl.TestRBACScoped.test_scoped_canary_240_conductors_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_240_conductors_get_admin ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_excl_nested_acquire ... 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.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.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.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.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_task_manager.TaskManagerTestCase.test_no_driver ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_no_driver ... 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.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.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.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_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_build_driver_exception ... ok 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-ee9feab1-b22f-4413-9cc2-cb0d820d664e X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-92c64157-d472-4ab7-8e26-327b9ab154cc X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-cede1c03-575b-4f59-89b3-ab522e858956 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c3fe956d-e526-4f33-a2b4-d4daef952e5f X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-fcb507cc-2f1c-456d-8153-bf61bb1352dd X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b2d9a4f7-f92c-473d-84b7-489046702241 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-b8e2225c-6570-4b8a-b271-bdf31c188038 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-29a173ed-7a38-4df2-89b6-3463aae73b63 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-f2a41055-ded1-48d5-9195-92f81aef9ef7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-62c3ae8d-b3ce-4fa6-8af4-d466f013b2fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-639c486a-1530-441b-bd6c-178aad8f2c7a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-9fb2cfd2-3647-423c-933f-55aecf39f29d X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c089e535-a72d-4e17-be89-389b3cfe44a6 X-Openstack-Ironic-Api-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 {} 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.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.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.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_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.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.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.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_shared_lock_get_volconn_exception ... ok ironic.tests.unit.conductor.test_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.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.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.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.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_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_scoped_canary_245_conductors_hostname_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_245_conductors_hostname_get_observer ... ok ironic.tests.unit.drivers.modules.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.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.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.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_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.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.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.api.test_acl.TestRBACScoped.test_scoped_canary_247_allocations_post_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_247_allocations_post_member ... skipped "This endpoint's behavior supports allocation creation as a member with the new Role Based Access Control changes. Thus this test cannot both ensure prior and post-change behavior as it is actually valid moving forward." ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_spawn_after_spawn_fails ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_077_lessee_admin_can_validate_node ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_077_lessee_admin_can_validate_node ... ok ironic.tests.unit.drivers.modules.redfish.test_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.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock ironic.tests.unit.conductor.test_task_manager.TaskManagerTestCase.test_upgrade_lock ... 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.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.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.conductor.test_utils.CacheBootModeTestCase.test_already_present ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_already_present ... 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.api.test_acl.TestRBACScoped.test_scoped_canary_249_allocations_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_249_allocations_get_admin ... ok ironic.tests.unit.drivers.modules.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.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.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.TestRBACScoped.test_scoped_canary_250_allocations_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_250_allocations_get_member ... ok ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_boot_mode ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_boot_mode ... 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.conductor.test_utils.CacheBootModeTestCase.test_failed_secure ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_failed_secure ... ok GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a09ee0c5-e6b0-4d53-bbd8-d9e61d4168a4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-a09ee0c5-e6b0-4d53-bbd8-d9e61d4168a4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-0e4c9c86-9a8b-40cc-a2a4-03e0a577aae0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:delete:self_owned_node\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0e4c9c86-9a8b-40cc-a2a4-03e0a577aae0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7cf9572b-857e-4531-80ac-f78f6edaddf1 X-Openstack-Ironic-Api-Maximum-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-7cf9572b-857e-4531-80ac-f78f6edaddf1 X-Openstack-Ironic-Api-Maximum-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 {} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-670506ef-b690-4dc7-861a-f6b5b05513f5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-670506ef-b690-4dc7-861a-f6b5b05513f5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-6c8ae556-e9d4-4f1c-a0b1-f429117057b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6c8ae556-e9d4-4f1c-a0b1-f429117057b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-f53e3929-59d2-4b1f-af4d-45007f31d6fb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f53e3929-59d2-4b1f-af4d-45007f31d6fb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-cca52013-c228-45a8-8755-339795c2756e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-cca52013-c228-45a8-8755-339795c2756e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-3bd36324-1a65-42ce-be33-08f610a098a1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3bd36324-1a65-42ce-be33-08f610a098a1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f42eb1a5-903b-4393-848f-5b48f0ac1df8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.TestRBACScoped.test_scoped_canary_251_allocations_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_251_allocations_get_observer ... ok ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_noneness ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_noneness ... 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.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_utils.CacheBootModeTestCase.test_retreive_and_set ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_retreive_and_set ... 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.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_utils.CacheBootModeTestCase.test_unsupported ironic.tests.unit.conductor.test_utils.CacheBootModeTestCase.test_unsupported ... 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.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.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.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.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.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.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.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.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.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_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.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.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.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.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_error_blocks ... ok ironic.tests.unit.drivers.modules.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.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.conductor.test_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat ironic.tests.unit.conductor.test_utils.FastTrackTestCase.test_is_fast_track_no_heartbeat ... ok ironic.tests.unit.drivers.modules.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.api.test_acl.TestRBACScoped.test_scoped_canary_256_allocations_allocation_id_patch_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_256_allocations_allocation_id_patch_member ... ok ironic.tests.unit.drivers.modules.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.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.test_acl.TestRBACProjectScoped.test_project_scoped_086_owner_member_can_set_maintenance ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_086_owner_member_can_set_maintenance ... ok ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_inspection ... 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: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2038ded4-a9b7-4866-bf79-27a4288a35d6 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-437310c6-cbf0-4cdd-8efc-292965239be7 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-87754625-9dfd-41fd-9160-252f741c9b4e X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c74b0ffc-c7b0-4118-bdb1-8b0b8574a69a X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-f3c57330-91ff-4ae5-9cd8-1bd88868efed X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d3684bda-33c9-4f75-ba75-0977293970ab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a8d4f7c7-04a3-4153-bd2c-049410b54944 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-10eb91d8-5600-4604-9ab3-33997ecf73e5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-d1139bd6-6329-439f-9022-4facad92f86a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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/5335020e-d05f-4de5-8458-e4f8c4da8858 GET: /v1/allocations/5335020e-d05f-4de5-8458-e4f8c4da8858 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ea5adee0-33ee-4219-965f-e4613c483f44 X-Openstack-Ironic-Api-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 5335020e-d05f-4de5-8458-e4f8c4da8858 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/allocations/b4ac58ce-efa2-45fe-9e02-32c4e0ad2df4 GET: /v1/allocations/b4ac58ce-efa2-45fe-9e02-32c4e0ad2df4 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-aba8eb10-c9fb-4a32-b090-3ba2d84b8f57 X-Openstack-Ironic-Api-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 b4ac58ce-efa2-45fe-9e02-32c4e0ad2df4 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/allocations/4d818307-7460-4db6-8366-115fd7122668 GET: /v1/allocations/4d818307-7460-4db6-8366-115fd7122668 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-e7796884-0f44-409e-b29a-0595487a0928 X-Openstack-Ironic-Api-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 4d818307-7460-4db6-8366-115fd7122668 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/allocations/46c4dcde-4870-4168-9ff5-bad9f5aaf944 PATCH: /v1/allocations/46c4dcde-4870-4168-9ff5-bad9f5aaf944 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-468e132d-9d32-498a-9780-d323be641bfc X-Openstack-Ironic-Api-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 46c4dcde-4870-4168-9ff5-bad9f5aaf944 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/allocations/18550a5d-3128-4f96-9036-d5760ecccb35 PATCH: /v1/allocations/18550a5d-3128-4f96-9036-d5760ecccb35 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2386a532-6ea6-414f-8319-160c6d0c0a21 X-Openstack-Ironic-Api-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 18550a5d-3128-4f96-9036-d5760ecccb35 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/allocations/c018543f-391e-442b-aeb0-e0e4768506d3 PATCH: /v1/allocations/c018543f-391e-442b-aeb0-e0e4768506d3 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_257_allocations_allocation_id_patch_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_257_allocations_allocation_id_patch_observer ... ok ironic.tests.unit.drivers.modules.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.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.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.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_258_allocations_allocation_id_delete_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_258_allocations_allocation_id_delete_admin ... ok ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_local ... 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.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing ironic.tests.unit.drivers.modules.redfish.test_boot.RedfishVirtualMediaBootTestCase.test_validate_missing ... 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.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_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.conductor.test_utils.GetConfigDriveImageTestCase.test_build_populated ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_populated ... 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.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.redfish.test_inspect.RedfishInspectTestCase.test_get_properties ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_get_properties ... ok ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f42eb1a5-903b-4393-848f-5b48f0ac1df8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-682f6b2c-f4c9-4413-ad5b-49277cdf40f1 X-Openstack-Ironic-Api-Maximum-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-682f6b2c-f4c9-4413-ad5b-49277cdf40f1 X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-1d3cf162-4767-4d04-87c1-4fcc73ec55d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1d3cf162-4767-4d04-87c1-4fcc73ec55d9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-e985c768-56da-4dd6-a3c3-3ae09d52dff1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e985c768-56da-4dd6-a3c3-3ae09d52dff1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-67ae8824-204a-4a64-9aca-2752358a75ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-67ae8824-204a-4a64-9aca-2752358a75ac X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-2976610d-bf68-4aa6-b0f2-5e9a67564fbf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2976610d-bf68-4aa6-b0f2-5e9a67564fbf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-231e0b23-837b-478a-95dd-dd5df66a7696 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-231e0b23-837b-478a-95dd-dd5df66a7696 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-f4294d48-d02a-4307-881e-3983eb2bada1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_maintenance\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f4294d48-d02a-4307-881e-3983eb2bada1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d5e2e593-8e52-499f-a936-613c1746bf21 X-Openstack-Ironic-Api-Maximum-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-d5e2e593-8e52-499f-a936-613c1746bf21 X-Openstack-Ironic-Api-Maximum-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.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_string ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_build_user_data_as_string ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_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_089_owner_admin_can_unset_maintenance ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_089_owner_admin_can_unset_maintenance ... ok ironic.tests.unit.drivers.modules.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.conductor.test_utils.GetConfigDriveImageTestCase.test_no_configdrive ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_no_configdrive ... 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.conductor.test_utils.GetConfigDriveImageTestCase.test_string ironic.tests.unit.conductor.test_utils.GetConfigDriveImageTestCase.test_string ... 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.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.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.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_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.NodeHistoryRecordTestCase.test_record_node_history ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history ... ok ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_boot_mode ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_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_091_lessee_admin_can_unset_maintenance ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_091_lessee_admin_can_unset_maintenance ... ok ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_cpu ... ok ironic.tests.unit.conductor.test_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.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.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.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_noop ironic.tests.unit.conductor.test_utils.NodeHistoryRecordTestCase.test_record_node_history_noop ... ok ironic.tests.unit.api.test_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.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.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.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.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.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_ignore_missing_nics ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_093_owner_member_can_unset_maintnenance ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_093_owner_member_can_unset_maintnenance ... ok ironic.tests.unit.drivers.modules.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.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.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_preserve_boot_mode ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_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.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.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.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.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_unsupported ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_cache_bios_unsupported ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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_266_nodes_allocation_delete_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_266_nodes_allocation_delete_observer ... 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.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_none_pxe_port_macs ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_inspect_hardware_with_none_pxe_port_macs ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify ironic.tests.unit.conductor.test_verify.DoNodeVerifyTestCase.test__do_node_verify ... 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.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.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 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-877c0f95-1052-4dbf-ab16-16da239c766d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-877c0f95-1052-4dbf-ab16-16da239c766d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-4afd7903-18fd-485e-8912-79048e8830a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4afd7903-18fd-485e-8912-79048e8830a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-03b4fe3f-7d3c-4f5e-bdac-f1e6ee903648 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-03b4fe3f-7d3c-4f5e-bdac-f1e6ee903648 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-6efcc39a-022a-404a-96db-076bc1df1130 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6efcc39a-022a-404a-96db-076bc1df1130 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-7c73940c-1503-4c3c-9f23-b3011a5bd195 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7c73940c-1503-4c3c-9f23-b3011a5bd195 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-4b4d202a-19ea-420f-aa64-30e24c808f63 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:clear_maintenance\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4b4d202a-19ea-420f-aa64-30e24c808f63 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bafb90f5-1fd9-46fc-b71b-5fabb02175bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-bafb90f5-1fd9-46fc-b71b-5fabb02175bf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-2448893e-3c47-45ca-965e-f21fdf4edbe6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2448893e-3c47-45ca-965e-f21fdf4edbe6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.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.api.test_acl.TestRBACScoped.test_scoped_canary_268_deploy_templates_post_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_268_deploy_templates_post_member ... ok ironic.tests.unit.drivers.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.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.redfish.test_inspect.RedfishInspectTestCase.test_validate ironic.tests.unit.drivers.modules.redfish.test_inspect.RedfishInspectTestCase.test_validate ... 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.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.conf.test_auth.AuthConfTestCase.test_add_auth_opts ironic.tests.unit.conf.test_auth.AuthConfTestCase.test_add_auth_opts ... 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_099_lessee_manager_cannot_set_boot_device ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_099_lessee_manager_cannot_set_boot_device ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_get_properties ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_270_deploy_templates_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_270_deploy_templates_get_admin ... 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_100_owner_member_cannot_set_boot_device ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_100_owner_member_cannot_set_boot_device ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_loading_error ... ok GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0c9b072c-4bd2-4575-a218-9410d2ad84ca X-Openstack-Ironic-Api-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 c018543f-391e-442b-aeb0-e0e4768506d3 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/allocations/fd1a55b7-2cd1-4948-b061-0b31c0f038a5 DELETE: /v1/allocations/fd1a55b7-2cd1-4948-b061-0b31c0f038a5 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-07b53897-75a2-4470-adc4-42b21963a4eb X-Openstack-Ironic-Api-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 fd1a55b7-2cd1-4948-b061-0b31c0f038a5 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/allocations/831f68b8-9319-4ade-9236-4ae53ca5ad12 DELETE: /v1/allocations/831f68b8-9319-4ade-9236-4ae53ca5ad12 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-0e6a1e18-3060-4ee0-9478-60368a914bd9 X-Openstack-Ironic-Api-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 831f68b8-9319-4ade-9236-4ae53ca5ad12 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/allocations/15d7689d-b8fd-4853-8c49-0bb4e166336e DELETE: /v1/allocations/15d7689d-b8fd-4853-8c49-0bb4e166336e GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1e51975f-a190-4912-80e5-f3e843e7b99c X-Openstack-Ironic-Api-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 15d7689d-b8fd-4853-8c49-0bb4e166336e 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-521c696c-6898-46ff-809e-df6e72ae1e97 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-a872b8f7-36de-4cb9-ae11-0bfa1b7cfd42 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8f6569b3-1b9f-4b3f-9763-4d3c9d5b292f X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-e9a95b58-18b9-41d6-aef6-8154c9d94692 X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-94f47d42-2adb-418e-b677-f93f40020f29 X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-4c7a0a45-1972-4509-a7ad-34aaf3dda95b X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-9b5e4f41-c229-42c9-a8bc-09e36d7d1440 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b3d361a7-8205-405a-b3fb-089d75cdf626 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-4616ee7c-9ece-43a9-b703-8422d580a493 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-aaade0d0-eba0-4994-b8ed-2517fdabe578 X-Openstack-Ironic-Api-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 {} ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_271_deploy_templates_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_271_deploy_templates_get_member ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail ... 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_272_deploy_templates_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_272_deploy_templates_get_observer ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail_on_power_on ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_fail_on_power_on ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_from_power_off ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_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.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.api.test_acl.TestRBACProjectScoped.test_project_scoped_103_owner_admin_can_get_boot_device ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_103_owner_admin_can_get_boot_device ... ok ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_reboot_not_reached ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_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.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_set_power_state ... ok ironic.tests.unit.api.test_acl.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.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.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 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-feb6c602-85bf-4b35-8b3a-fc08d328c66f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-feb6c602-85bf-4b35-8b3a-fc08d328c66f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b720c9f9-fdee-46c2-b29b-be4439f881eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b720c9f9-fdee-46c2-b29b-be4439f881eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-608ac567-398c-48b2-bb27-8511e6a7e4e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-608ac567-398c-48b2-bb27-8511e6a7e4e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-77d5a535-8340-4177-a13c-be01e671aef9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-77d5a535-8340-4177-a13c-be01e671aef9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9e516ebf-4488-41d9-abdd-f2c592a4b242 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_boot_device\", \"debuginfo\": null}"} ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9e516ebf-4488-41d9-abdd-f2c592a4b242 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-53b7c5c0-d8ff-467f-82dc-41b44bb30396 X-Openstack-Ironic-Api-Maximum-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-53b7c5c0-d8ff-467f-82dc-41b44bb30396 X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-a429a2d4-48f8-4837-b4b3-ea3cdf6c697d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-a429a2d4-48f8-4837-b4b3-ea3cdf6c697d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-bbf9357d-fa2e-41f7-8dbd-ca7c7b7d1df8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bbf9357d-fa2e-41f7-8dbd-ca7c7b7d1df8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.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.redfish.test_power.RedfishPowerTestCase.test_validate ironic.tests.unit.drivers.modules.redfish.test_power.RedfishPowerTestCase.test_validate ... 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_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_agent.TestAgentMethods.test_check_image_size ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_277_deploy_templates_deploy_template_id_patch_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_277_deploy_templates_deploy_template_id_patch_member ... ok ironic.tests.unit.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_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_fail_by_agent_consumed_memory ... ok ironic.tests.unit.api.test_acl.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.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.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_check_image_size_raw_stream_disabled ... ok ironic.tests.unit.drivers.modules.test_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.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.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.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_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.api.test_acl.TestRBACProjectScoped.test_project_scoped_110_third_party_admin_cannot_get_boot_device ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_110_third_party_admin_cannot_get_boot_device ... ok ironic.tests.unit.api.test_acl.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.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.test_agent.TestAgentMethods.test_validate_http_provisioning_http_image ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_http_image ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.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.api.test_acl.TestRBACScoped.test_scoped_canary_282_chassis_post_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_282_chassis_post_admin ... ok ironic.tests.unit.drivers.modules.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.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_http ironic.tests.unit.drivers.modules.test_agent.TestAgentMethods.test_validate_http_provisioning_missing_args_local_http ... ok ironic.tests.unit.drivers.modules.test_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 GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-51684ed5-24ff-4cdc-8e65-e07b979d192d X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1c47a0ef-aadd-4c50-8d70-06dc48517d99 X-Openstack-Ironic-Api-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/633c565a-4ac8-4b91-8c18-3fd0d11053fa GET: /v1/deploy_templates/633c565a-4ac8-4b91-8c18-3fd0d11053fa {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-64c72fe5-0d7b-4344-b306-ceab6b694eea X-Openstack-Ironic-Api-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/0177959a-b790-4661-93cd-e89c8f8d4f73 GET: /v1/deploy_templates/0177959a-b790-4661-93cd-e89c8f8d4f73 {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-613e49f5-2471-4ae7-9f5c-114d05936036 X-Openstack-Ironic-Api-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/67f24e93-8acd-49f3-8e96-9b885a645846 GET: /v1/deploy_templates/67f24e93-8acd-49f3-8e96-9b885a645846 {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8d5201a9-bd02-4033-8d65-7b218ced2eac X-Openstack-Ironic-Api-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/26d6dece-7fea-41ab-81a3-57eb677cd3f1 PATCH: /v1/deploy_templates/26d6dece-7fea-41ab-81a3-57eb677cd3f1 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-833003cd-37ee-4ed3-9d42-4f1819060995 X-Openstack-Ironic-Api-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/e370b10a-7212-4d38-b681-26a0438fc71c PATCH: /v1/deploy_templates/e370b10a-7212-4d38-b681-26a0438fc71c [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-bc438e5a-772a-408c-8881-a8f80c398671 X-Openstack-Ironic-Api-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/204be832-c133-4a50-9bc4-d2db83d2a581 PATCH: /v1/deploy_templates/204be832-c133-4a50-9bc4-d2db83d2a581 [{'op': 'replace', 'path': '/name', 'value': 'CUSTOM_MAGIC'}] GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a9b3e844-7a7d-4847-9ac2-4ad24a89337a X-Openstack-Ironic-Api-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/86301d63-4ec8-47b1-8682-22f66a1b0f06 DELETE: /v1/deploy_templates/86301d63-4ec8-47b1-8682-22f66a1b0f06 GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0ee285cf-62e4-43c6-ad82-8125bc3d3b44 X-Openstack-Ironic-Api-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/07beab2b-4b72-43da-88c6-64703f679059 DELETE: /v1/deploy_templates/07beab2b-4b72-43da-88c6-64703f679059 GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-41707894-7c34-42ba-93d3-8c7de3a45706 X-Openstack-Ironic-Api-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/27c01904-0a82-4e96-9fda-c9c8c6b617f7 DELETE: /v1/deploy_templates/27c01904-0a82-4e96-9fda-c9c8c6b617f7 GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-a16cea91-b25d-494d-a4b5-583096f8c308 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:delete\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/chassis POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-51cc07a5-6bda-4a93-ae93-e370c1f93ee6 X-Openstack-Ironic-Api-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'} 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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c6dcd152-290c-480a-b545-fa5b446cbba1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-c6dcd152-290c-480a-b545-fa5b446cbba1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-044bb0d1-a1c9-48cf-b83b-b511c1d41e01 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-044bb0d1-a1c9-48cf-b83b-b511c1d41e01 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-8fe01cf2-b0b8-4762-a4ba-b5934b33cf80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-8fe01cf2-b0b8-4762-a4ba-b5934b33cf80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-5c6e3aa1-3321-41e3-875d-fb9ae5a80882 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-5c6e3aa1-3321-41e3-875d-fb9ae5a80882 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-da159525-a6c6-47e1-ba77-da9d030e32bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-da159525-a6c6-47e1-ba77-da9d030e32bc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-0b6e0f0a-d567-4fa9-9652-cf49d803f4c4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-0b6e0f0a-d567-4fa9-9652-cf49d803f4c4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-67ac55b6-085f-49e3-8a86-893c491facbd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-67ac55b6-085f-49e3-8a86-893c491facbd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-cba26806-3488-44e6-ad68-8e053ef98749 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-cba26806-3488-44e6-ad68-8e053ef98749 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.drivers.modules.test_agent.TestCustomAgentDeploy.test_clean_up ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_clean_up ... 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.api.test_acl.TestRBACScoped.test_scoped_canary_284_chassis_post_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_284_chassis_post_observer ... ok ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_deploy ... 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.TestRBACProjectScoped.test_project_scoped_115_lessee_manager_cannot_get_supported_boot_devices ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_115_lessee_manager_cannot_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.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.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.TestRBACProjectScoped.test_project_scoped_116_third_party_admin_cannot_get_supported_boot_devices ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_116_third_party_admin_cannot_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.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.test_agent.TestCustomAgentDeploy.test_get_properties ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_get_properties ... 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_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.test_agent.TestCustomAgentDeploy.test_prepare ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_prepare ... 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_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_118_owner_manager_can_send_non_masking_interrupt ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_118_owner_manager_can_send_non_masking_interrupt ... ok ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_validate ironic.tests.unit.drivers.modules.test_agent.TestCustomAgentDeploy.test_validate ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_288_chassis_detail_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_288_chassis_detail_get_admin ... ok ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue ... 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.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_bad_command_result ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_bad_command_result ... ok ironic.tests.unit.drivers.modules.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.api.test_acl.TestRBACScoped.test_scoped_canary_289_chassis_detail_get_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_289_chassis_detail_get_member ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_120_lessee_manager_cannot_send_non_masking_interrupt ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_120_lessee_manager_cannot_send_non_masking_interrupt ... ok ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_missing_command_result ironic.tests.unit.drivers.modules.test_agent_base.AgentRescueTests.test__finalize_rescue_missing_command_result ... ok ironic.tests.unit.drivers.modules.test_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.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.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-22f53234-82c3-45cb-b075-3155e2ced7ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-22f53234-82c3-45cb-b075-3155e2ced7ad X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1725e4d6-fff3-4a1b-bd48-fe493f4963ca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-1725e4d6-fff3-4a1b-bd48-fe493f4963ca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0bd86cd5-15f7-476e-af61-c38907c893fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-0bd86cd5-15f7-476e-af61-c38907c893fc X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-642492fd-b650-4501-9206-7c85254b285c X-Openstack-Ironic-Api-Maximum-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-642492fd-b650-4501-9206-7c85254b285c X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-f2f3b9bd-efcb-41d9-a127-97daa764c7bb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f2f3b9bd-efcb-41d9-a127-97daa764c7bb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-1472c0c0-2702-4175-9fbb-5403e9e9bcf0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1472c0c0-2702-4175-9fbb-5403e9e9bcf0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-ff066000-5617-471f-8acf-7083fc0dcd90 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-ff066000-5617-471f-8acf-7083fc0dcd90 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-f75c4aba-1c2e-4b96-a684-d8fe9e6a704a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-f75c4aba-1c2e-4b96-a684-d8fe9e6a704a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios_default ironic.tests.unit.drivers.modules.test_boot_mode_utils.GetBootModeTestCase.test_get_boot_mode_bios_default ... ok ironic.tests.unit.drivers.modules.test_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.test_acl.TestRBACProjectScoped.test_project_scoped_122_owner_reader_get_states ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_122_owner_reader_get_states ... ok ironic.tests.unit.drivers.modules.test_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_scoped_canary_291_chassis_chassis_id_get_admin ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_291_chassis_chassis_id_get_admin ... ok ironic.tests.unit.drivers.modules.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_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.TestRBACProjectScoped.test_project_scoped_123_lessee_reader_get_states ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_123_lessee_reader_get_states ... ok ironic.tests.unit.drivers.modules.test_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_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning ironic.tests.unit.drivers.modules.test_deploy_utils.AsyncStepTestCase.test_get_async_step_return_state_cleaning ... ok ironic.tests.unit.api.test_acl.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.TestRBACProjectScoped.test_project_scoped_124_third_part_admin_cannot_get_states ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_124_third_part_admin_cannot_get_states ... ok ironic.tests.unit.drivers.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_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_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.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.TestRBACProjectScoped.test_project_scoped_125_owner_admin_can_put_power_state_change ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_125_owner_admin_can_put_power_state_change ... ok ironic.tests.unit.drivers.modules.test_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.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.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.TestRBACScoped.test_scoped_canary_295_chassis_chassis_id_patch_member ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_295_chassis_chassis_id_patch_member ... ok ironic.tests.unit.drivers.modules.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.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_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.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.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.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" GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2e47cc37-d486-4364-8330-624022af8833 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/chassis POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-087a7d08-9803-40ae-970a-7314041ef0e8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis GET: /v1/chassis {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-77b9200a-32c2-4bcd-95f4-63832adb45d6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis GET: /v1/chassis {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1bce7721-b9bd-43fb-8b2a-a2cc41dc5c7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis GET: /v1/chassis {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-275091e7-4303-42a1-a7e3-38ad350ff5d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis/detail GET: /v1/chassis/detail {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0cc7ddc8-6096-46e5-b7d4-8d5934ad8d24 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis/detail GET: /v1/chassis/detail {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-7ca2b85b-4e88-4623-b5da-c6fa1c48b342 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis/detail GET: /v1/chassis/detail {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-14c0bddd-176b-4db6-b2d9-06f14e9c39df X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1302e4bc-78d8-4ecc-a852-b57ef17d39b5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-10d5bd93-c077-4e31-ad0f-d667409aae8a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 GET: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-6b00fcb6-c67e-471b-b346-22cc6b6de051 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 PATCH: /v1/chassis/e74c40e0-d825-11e2-a28f-0800200c9a66 [{'op': 'replace', 'path': '/description', 'value': 'meow'}] GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-3251b90c-4fe5-4259-bc76-b3e95a6fb0d8 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-f63e34f0-2110-4c45-aa68-7ae80faf053a X-Openstack-Ironic-Api-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'}] 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_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.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_and_version ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect" ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_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.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsMySQL.test_upgrade_twice ... skipped "Backend 'mysql+pymysql' is unavailable: Could not connect" ironic.tests.unit.drivers.modules.test_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.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_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.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_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image_anaconda ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_good_non_glance_image_anaconda ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_missing_image_source ... ok ironic.tests.unit.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.db.test_api.GetNotVersionsTestCase.test_get_not_versions ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions ... ok ironic.tests.unit.drivers.modules.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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-703268b9-e67f-4314-ba02-810ae230ccd1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-703268b9-e67f-4314-ba02-810ae230ccd1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-db95d709-d1db-4ab8-947f-cc94589edace X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"console_enabled": false, "last_error": "meow", "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-db95d709-d1db-4ab8-947f-cc94589edace 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 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dfdaf033-e21d-424d-ae88-a068e1b67817 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"console_enabled": false, "last_error": "meow", "power_state": null, "provision_state": "available", "target_power_state": null, "target_provision_state": null, "provision_updated_at": null, "raid_config": {}, "target_raid_config": {}, "boot_mode": null, "secure_boot": null} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-dfdaf033-e21d-424d-ae88-a068e1b67817 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 Content-Type: application/json Openstack-Request-Id: req-1ba34516-3a6f-4d0d-a87a-9792391ccd7c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-1ba34516-3a6f-4d0d-a87a-9792391ccd7c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-316455bf-f2e4-4254-aa2b-8aea4b9f835b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-316455bf-f2e4-4254-aa2b-8aea4b9f835b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-b11bb267-1a45-4c61-b00f-d57cc5094bb9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b11bb267-1a45-4c61-b00f-d57cc5094bb9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-f6c4cecd-19bd-4b44-9c7b-36e0de5cddf9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-f6c4cecd-19bd-4b44-9c7b-36e0de5cddf9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-c6177b91-007c-4404-8f28-f1f841ecf3ab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c6177b91-007c-4404-8f28-f1f841ecf3ab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.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_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.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null ironic.tests.unit.db.test_api.GetNotVersionsTestCase.test_get_not_versions_null ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_ramdisk_deploy ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_ramdisk_deploy ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_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.TestRBACProjectScoped.test_project_scoped_130_lessee_member_can_put_power_state_change ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_130_lessee_member_can_put_power_state_change ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image ironic.tests.unit.drivers.modules.test_deploy_utils.ValidateParametersTestCase.test__get_img_instance_info_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_amount_not_satisfied ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_cache_still_large ... ok ironic.tests.unit.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.TestRBACProjectScoped.test_project_scoped_131_owner_reader_cannot_put_power_state_change ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_131_owner_reader_cannot_put_power_state_change ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_ensure_cache_size_with_amount ... ok ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_302_node_history_get_observer ironic.tests.unit.api.test_acl.TestRBACScoped.test_scoped_canary_302_node_history_get_observer ... ok ironic.tests.unit.drivers.modules.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.api.test_acl.TestRBACProjectScoped.test_project_scoped_132_lessee_reader_cannot_put_power_state_change ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_132_lessee_reader_cannot_put_power_state_change ... ok ironic.tests.unit.drivers.modules.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.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.db.test_api.UpgradingTestCase.test_check_versions ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_clean_up_old_with_amount ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_cleanup_ordering ... ok ironic.tests.unit.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.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.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_dir_exception ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheCleanUp.test_temp_images_not_cleaned ... ok ironic.tests.unit.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_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.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_dest_path_if_stale_no_dest ... ok ironic.tests.unit.drivers.modules.test_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_audit.TestAuditMiddleware.test_disable_audit_request ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_disable_audit_request ... ok ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor ... ok ironic.tests.unit.drivers.modules.test_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.test_audit.TestAuditMiddleware.test_enable_audit_request ironic.tests.unit.api.test_audit.TestAuditMiddleware.test_enable_audit_request ... ok ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_conductor_old ... ok ironic.tests.unit.drivers.modules.test_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.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_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_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_functions.TestFunctionDefinition.test_get_arg ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_get_arg ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_glance_img_not_cached ... ok ironic.tests.unit.api.test_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.TestUpdateImages.test__delete_master_path_if_stale_master_same_time ironic.tests.unit.drivers.modules.test_image_cache.TestUpdateImages.test__delete_master_path_if_stale_master_same_time ... ok ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_signature ironic.tests.unit.api.test_functions.TestFunctionDefinition.test_signature ... 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_hooks.TestPolicyDeprecation.test_policy_deprecation_check ironic.tests.unit.api.test_hooks.TestPolicyDeprecation.test_policy_deprecation_check ... 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_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.test_method.TestExpose.test_exception ironic.tests.unit.api.test_method.TestExpose.test_exception ... 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_api.UpgradingTestCase.test_check_versions_handles_missing_table ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_handles_missing_table ... 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-6977a1b9-cde8-4c3b-b209-b800a1963a6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-6977a1b9-cde8-4c3b-b209-b800a1963a6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-7108db8d-c221-4853-aa4e-918417ef2124 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7108db8d-c221-4853-aa4e-918417ef2124 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-ae26d6e2-17c9-4d26-9dd7-28b7b28878f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-ae26d6e2-17c9-4d26-9dd7-28b7b28878f9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-27af3fae-6ac4-4b79-9784-6e27c207ebc4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-27af3fae-6ac4-4b79-9784-6e27c207ebc4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-e43ca61e-f093-4452-bb40-3f581d658cc7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-e43ca61e-f093-4452-bb40-3f581d658cc7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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'} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-942c5dc2-e169-467f-81af-cd852c0a9d9e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-942c5dc2-e169-467f-81af-cd852c0a9d9e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-0757fe06-2406-4ecf-b31a-332737185216 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0757fe06-2406-4ecf-b31a-332737185216 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-5e86b2ad-a1ee-4fe5-a187-4b838f195120 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5e86b2ad-a1ee-4fe5-a187-4b838f195120 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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_method.TestExpose.test_expose ironic.tests.unit.api.test_method.TestExpose.test_expose ... 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.api.test_method.TestExpose.test_expose_validation ironic.tests.unit.api.test_method.TestExpose.test_expose_validation ... 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_138_owner_member_can_put_boot_mode_state_change ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_138_owner_member_can_put_boot_mode_state_change ... ok ironic.tests.unit.api.test_method.TestExpose.test_post_body ironic.tests.unit.api.test_method.TestExpose.test_post_body ... 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.test_method.TestExpose.test_response_204 ironic.tests.unit.api.test_method.TestExpose.test_response_204 ... 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.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_method.TestExpose.test_response_content ironic.tests.unit.api.test_method.TestExpose.test_response_content ... 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.test_middleware.TestBasicAuthMiddleware.test_authenticated ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_authenticated ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_140_owner_reader_cannot_put_boot_mode_state_change ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_140_owner_reader_cannot_put_boot_mode_state_change ... ok ironic.tests.unit.drivers.modules.test_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.api.test_middleware.TestBasicAuthMiddleware.test_not_authenticated ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_not_authenticated ... 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.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 GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8c183542-f3b3-4b92-b957-bed698c350ea X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-4f438187-ef90-4e68-ac6c-a328e53b7d8c X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-fdda9e69-81b4-4b03-a8e8-81e949197e84 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-fd52cf19-4cd9-4150-9c69-894e41336f06 X-Openstack-Ironic-Api-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-0703b8be-7a8c-43b2-a420-48110bfbdba5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-f5369c4b-6524-4d98-8324-8c6b47724228 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-53565e48-de16-46f2-92be-a27008e2e7c7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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/9ccd4f06-45cc-4e9e-89bf-4de39e773793 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/9ccd4f06-45cc-4e9e-89bf-4de39e773793 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1cc94848-1edd-4294-9db4-2d25d8257a4e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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/60c2aa4f-359b-47fe-941c-e43b9c67881f GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/60c2aa4f-359b-47fe-941c-e43b9c67881f {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bc4b8093-f8fd-42fb-9caa-60efd40efc40 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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/b50c3e15-9667-4a1c-bed6-785bb148d5ad GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/b50c3e15-9667-4a1c-bed6-785bb148d5ad {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-ce900a29-6976-4ee1-b105-7c50fe2c682a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1be26c0b-03f2-4d2e-ae87-c02d7f33c123 could not be found.\", \"debuginfo\": null}"} GET: /v1/things/ouch {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-2c29cfb4-c732-49e1-b6cb-161b17cd5380 {"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-4a4cfee6-3b11-4b29-ad94-94b5f6071d38 {"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-51966609-66bc-4218-89d9-4529324d5b39 {"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-ddb71a78-cba9-454f-8d08-523ab08efc35 {"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-64ed92aa-934d-4480-91a3-4e03d3f18f05 GET: /v1/things/response_content {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c830ac22-95ba-4550-b89e-90054691ffe1 "nothing" GET: /v1/things/response_custom_status {} GOT:Response: 202 Accepted Content-Type: application/json Openstack-Request-Id: req-340acf10-e865-40c5-8403-b5c7532dce80 "accepted" 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/ {} ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_public_unauthenticated ironic.tests.unit.api.test_middleware.TestBasicAuthMiddleware.test_public_unauthenticated ... ok ironic.tests.unit.drivers.modules.test_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.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.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_middleware.TestCORSMiddleware.test_invalid_cors_options_request ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_invalid_cors_options_request ... 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.db.test_api.UpgradingTestCase.test_check_versions_node_old ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_node_old ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_exception_ignored ... 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.db.test_api.UpgradingTestCase.test_check_versions_raises_missing_table ironic.tests.unit.db.test_api.UpgradingTestCase.test_check_versions_raises_missing_table ... ok ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request ironic.tests.unit.api.test_middleware.TestCORSMiddleware.test_valid_cors_get_request ... 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.db.test_deploy_templates.DbDeployTemplateTestCase.test_create ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create ... 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.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_name ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_finished ... 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.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_duplicate_uuid ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspecting ... 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_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.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_create_invalid_step_no_interface ... ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_not_inspector ... 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.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.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_root.TestV1Root.test_get_v1_root ironic.tests.unit.api.test_root.TestV1Root.test_get_v1_root ... 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.test_inspector.CheckStatusTestCase.test_status_error ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_error ... ok ironic.tests.unit.common.test_args.ValidateTypesTest.test_types ironic.tests.unit.common.test_args.ValidateTypesTest.test_types ... 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.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.common.test_cinder.TestCinderClient.test_get_client ironic.tests.unit.common.test_cinder.TestCinderClient.test_get_client ... 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_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.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary ironic.tests.unit.common.test_cinder.TestCinderUtils.test__create_metadata_dictionary ... 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.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.common.test_cinder.TestCinderUtils.test__get_attachment_id ironic.tests.unit.common.test_cinder.TestCinderUtils.test__get_attachment_id ... 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.common.test_cinder.TestCinderUtils.test_is_volume_attached ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_attached ... 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 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-512ccf00-e0bd-436d-9595-f8a2562e0b0f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-512ccf00-e0bd-436d-9595-f8a2562e0b0f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-e4a15921-e42d-4217-bbb6-02274749d44e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e4a15921-e42d-4217-bbb6-02274749d44e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-642d8159-66c2-4cc4-b05b-d5b7c5a8c624 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-642d8159-66c2-4cc4-b05b-d5b7c5a8c624 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-9e535c60-5d8c-404e-bfca-a3a22406d675 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-9e535c60-5d8c-404e-bfca-a3a22406d675 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-b5a6d894-959c-472e-9909-90f362e3ae7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-b5a6d894-959c-472e-9909-90f362e3ae7f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d70fa9a2-a6cf-447f-b877-028615b27672 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-d70fa9a2-a6cf-447f-b877-028615b27672 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-5eed02fd-07cd-4246-b294-dec507771e2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5eed02fd-07cd-4246-b294-dec507771e2b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-b75caa98-44b8-4117-a828-454df4838397 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b75caa98-44b8-4117-a828-454df4838397 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.common.test_cinder.TestCinderUtils.test_is_volume_available ironic.tests.unit.common.test_cinder.TestCinderUtils.test_is_volume_available ... 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.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok ... 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.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.test_inspector.CheckStatusTestCase.test_status_ok_managed ironic.tests.unit.drivers.modules.test_inspector.CheckStatusTestCase.test_status_ok_managed ... 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.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.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.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.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_duplicate_name ... ok ironic.tests.unit.common.test_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.TestRBACProjectScoped.test_project_scoped_147_owner_member_can_put_secure_boot_state_change ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_147_owner_member_can_put_secure_boot_state_change ... ok ironic.tests.unit.drivers.modules.test_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.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_extra ... 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.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_name ... ok ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_error ... 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.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.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareAbortTestCase.test_abort_ok ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.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.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.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__allocate_port ... 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.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.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.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.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_cold ... ok ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args ironic.tests.unit.db.test_deploy_templates.DbDeployTemplateTestCase.test_update_steps_replace_args ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__bmc_reset_fail ... 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.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.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.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.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.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.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.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.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_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.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.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.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.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__parse_ipmi_sensor_data_missing_sensor_reading ... ok ironic.tests.unit.api.test_acl.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.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.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.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.db.test_nodes.DbNodeTestCase.test_create_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_create_node ... 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_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache ironic.tests.unit.common.test_glance_service.TestSwiftTempUrlCache.test_add_items_to_cache ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__release_allocated_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test__release_allocated_port ... 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_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.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.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.TestRBACProjectScoped.test_project_scoped_152_owner_admin_can_change_provision_state ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_152_owner_admin_can_change_provision_state ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_detect_vendor ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_detect_vendor ... 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.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_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_fail ... 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.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.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_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_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_dump_sdr_ok ... ok ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs ironic.tests.unit.common.test_images.FsImageTestCase.test__create_root_fs ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c73efbc0-cd75-413c-b240-346340d5af70 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c73efbc0-cd75-413c-b240-346340d5af70 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-2d02606a-df37-435b-8df2-85e7cc656e97 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2d02606a-df37-435b-8df2-85e7cc656e97 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-085c1fd0-bcf7-47cd-b43d-3dde172ad8e8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-085c1fd0-bcf7-47cd-b43d-3dde172ad8e8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-44b70c6d-07a2-457f-93c9-842505dd0f47 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-44b70c6d-07a2-457f-93c9-842505dd0f47 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-3cf1fb54-e0fc-43cb-96fd-6d415f1b8490 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-3cf1fb54-e0fc-43cb-96fd-6d415f1b8490 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-187889a6-c6f2-430c-b0ff-74eca996b288 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-187889a6-c6f2-430c-b0ff-74eca996b288 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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'} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-7673edfb-1fd9-4a20-89cb-e7f05d3c04d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-7673edfb-1fd9-4a20-89cb-e7f05d3c04d8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-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-bde50f01-b4f6-40a6-87b7-fdbd7642ec80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bde50f01-b4f6-40a6-87b7-fdbd7642ec80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.common.test_images.FsImageTestCase.test__generate_grub_cfg ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_grub_cfg ... 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_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_images.FsImageTestCase.test__generate_isolinux_cfg ironic.tests.unit.common.test_images.FsImageTestCase.test__generate_isolinux_cfg ... 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.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.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.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_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.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_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_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.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_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_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_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.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_get_properties ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_node_by_instance ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.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.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_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_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.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.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.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_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_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.TestRBACProjectScoped.test_project_scoped_156_lessee_manager_can_change_provision_state ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_156_lessee_manager_can_change_provision_state ... ok ironic.tests.unit.drivers.modules.test_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_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.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.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.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.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.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.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.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.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.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_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.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.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_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails ironic.tests.unit.common.test_images.FsImageTestCase.test_create_isolinux_image_bios_rootfs_fails ... ok ironic.tests.unit.api.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.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_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.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.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_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.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.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_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.test_acl.TestRBACProjectScoped.test_project_scoped_159_owner_admin_can_set_raid_config ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_159_owner_admin_can_set_raid_config ... ok ironic.tests.unit.drivers.modules.test_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.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.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.common.test_images.FsImageTestCase.test_create_vfat_image ironic.tests.unit.common.test_images.FsImageTestCase.test_create_vfat_image ... 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.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_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.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_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.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all ironic.tests.unit.common.test_images.FsImageTestCase.test_get_glance_image_properties_default_all ... ok ironic.tests.unit.api.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.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.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.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.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.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.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.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 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3a2dbb02-ce9d-4b99-900d-f30b59326d49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3a2dbb02-ce9d-4b99-900d-f30b59326d49 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-59a67419-1480-4ae1-a2a7-9fba429d0169 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-59a67419-1480-4ae1-a2a7-9fba429d0169 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-1c606b42-d6f0-44c5-9fbc-c2074062fdc4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1c606b42-d6f0-44c5-9fbc-c2074062fdc4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-3906f9e4-fdf7-40d4-b97e-c7a42f05ca34 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3906f9e4-fdf7-40d4-b97e-c7a42f05ca34 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b334953a-7598-4be2-9c9d-02f894af390c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-b334953a-7598-4be2-9c9d-02f894af390c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-d6219b0d-4fa2-4e71-876b-3d0178bac2d2 X-Openstack-Ironic-Api-Maximum-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-d6219b0d-4fa2-4e71-876b-3d0178bac2d2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/raid PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8187ed81-28c8-479e-9f41-0c656cde2191 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8187ed81-28c8-479e-9f41-0c656cde2191 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/raid PUT: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c3fe8a31-4167-488e-87d9-6c5f9de3da42 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c3fe8a31-4167-488e-87d9-6c5f9de3da42 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.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.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.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.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.common.test_images.IronicImagesTestCase.test_converted_size_estimate_raw_smaller ironic.tests.unit.common.test_images.IronicImagesTestCase.test_converted_size_estimate_raw_smaller ... ok ironic.tests.unit.db.test_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_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.common.test_images.IronicImagesTestCase.test_download_size ironic.tests.unit.common.test_images.IronicImagesTestCase.test_download_size ... 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.common.test_images.IronicImagesTestCase.test_fetch_image_service ironic.tests.unit.common.test_images.IronicImagesTestCase.test_fetch_image_service ... 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.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.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_defaults ... ok ironic.tests.unit.api.test_acl.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.common.test_images.IronicImagesTestCase.test_image_show_image_service ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_show_image_service ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_get_nodeinfo_list_description ... 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.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.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.common.test_images.IronicImagesTestCase.test_image_to_raw ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw ... 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.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.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.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.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.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.common.test_images.IronicImagesTestCase.test_image_to_raw_no_file_format ironic.tests.unit.common.test_images.IronicImagesTestCase.test_image_to_raw_no_file_format ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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.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.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.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.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_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.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.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.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.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.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_source_a_path_simple ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_ports_get_destroyed_after_destroying_a_node_by_uuid ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.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.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_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_management_interface_validate_fail ... 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.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.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.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.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.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.db.test_nodes.DbNodeTestCase.test_release_reservation ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_release_reservation ... ok ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance ironic.tests.unit.common.test_images.IronicImagesTestCase.test_is_whole_disk_image_partition_non_glance ... ok GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4ed41ff7-df31-4e55-96f1-2ff48447ea6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-4ed41ff7-df31-4e55-96f1-2ff48447ea6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-1db7d254-3ede-4df1-b819-c7cda268dd0c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-1db7d254-3ede-4df1-b819-c7cda268dd0c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e4f57855-7165-464c-8b37-a68ae55abc96 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e4f57855-7165-464c-8b37-a68ae55abc96 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-b6fa3abe-8871-4f41-b702-76a98b5598c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-b6fa3abe-8871-4f41-b702-76a98b5598c0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:set_raid_state\", \"debuginfo\": null}"} API ACL Testing Path put /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid PUT: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/raid {'target_raid_config': {'logical_disks': [{'size_gb': 500, 'is_root_volume': True, 'raid_level': 1}]}} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-5d60ff06-b1cb-4194-8ae4-4a5900d98a8e X-Openstack-Ironic-Api-Maximum-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-5d60ff06-b1cb-4194-8ae4-4a5900d98a8e X-Openstack-Ironic-Api-Maximum-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-0a35e888-954d-4496-ad76-5a248cd65072 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0a35e888-954d-4496-ad76-5a248cd65072 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/states/console {} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-cf154360-7bd8-455f-ab1c-9a7fc6a534b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-cf154360-7bd8-455f-ab1c-9a7fc6a534b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-ec0b83b8-1c34-4939-80c5-ba55b15cbdc2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-ec0b83b8-1c34-4939-80c5-ba55b15cbdc2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_power_validate ... 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.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_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.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_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_reboot_already_off ... 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.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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_connection_error ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_connection_error ... ok ironic.tests.unit.drivers.modules.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.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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_empty ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_empty ... ok ironic.tests.unit.drivers.modules.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.db.test_nodes.DbNodeTestCase.test_reserve_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_reserve_node ... 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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_http ... 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.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.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.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.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.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.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_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.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_touch_node_provisioning ... 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.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_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_fail ... 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.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.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.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.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_get_configuration_swift ... 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_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_send_raw_bytes_returns ... 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.db.test_nodes.DbNodeTestCase.test_update_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_174_third_party_admin_cannot_get_console ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_174_third_party_admin_cannot_get_console ... ok ironic.tests.unit.drivers.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.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_associate_and_disassociate ... ok ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_connection_error ... 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.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.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.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.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.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_http ... 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.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.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.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.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.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.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_no_provision ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_no_provision ... 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.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift ironic.tests.unit.common.test_molds.ConfigurationMoldTestCase.test_save_configuration_swift ... 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.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.db.test_nodes.DbNodeTestCase.test_update_node_provision ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_provision ... 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 GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/states/console {} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1fcc0e51-0ee4-436f-9cc4-0477a20883cd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-1fcc0e51-0ee4-436f-9cc4-0477a20883cd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-7cce6e1c-ad75-4ba4-87e1-78f681a6b18f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7cce6e1c-ad75-4ba4-87e1-78f681a6b18f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-782a37bb-97d7-4bd2-aaaa-57d229c210de X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-782a37bb-97d7-4bd2-aaaa-57d229c210de X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-9d3812b3-6552-4ee1-93ba-9ec99549edae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-9d3812b3-6552-4ee1-93ba-9ec99549edae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-d4cce23c-a1cd-46ba-8e1a-85ec6044a5c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-d4cce23c-a1cd-46ba-8e1a-85ec6044a5c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-73e36720-b737-4639-801c-838d16208c39 X-Openstack-Ironic-Api-Maximum-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-73e36720-b737-4639-801c-838d16208c39 X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-addb2867-d725-4d79-92ab-e0f1f08e89e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-addb2867-d725-4d79-92ab-e0f1f08e89e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-7996b4ab-e572-4957-b29d-eaa0b95095be X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7996b4ab-e572-4957-b29d-eaa0b95095be X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.db.test_nodes.DbNodeTestCase.test_update_node_uuid ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_uuid ... ok ironic.tests.unit.drivers.modules.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.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.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.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv4 ... 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.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.db.test_nodes.DbNodeTestCase.test_update_node_with_traits ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_update_node_with_traits ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test__uncidr_ipv6 ... ok ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_connector_get_destroyed_after_destroying_a_node ... ok ironic.tests.unit.drivers.modules.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.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.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.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_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.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node ironic.tests.unit.db.test_nodes.DbNodeTestCase.test_volume_target_gets_destroyed_after_destroying_a_node ... ok ironic.tests.unit.drivers.modules.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_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.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.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.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.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.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.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test__ansible_deploy ... ok ironic.tests.unit.api.test_acl.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.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_fail ... ok ironic.tests.unit.drivers.modules.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.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.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_set_soft_reboot_timeout_ok ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_clean_up ... ok ironic.tests.unit.api.test_acl.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.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.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_deploy ... ok ironic.tests.unit.drivers.modules.test_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.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.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.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.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_execute_clean_step_no_success_log ... ok ironic.tests.unit.drivers.modules.test_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.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.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_clean_steps ... ok ironic.tests.unit.drivers.modules.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.ansible.test_deploy.TestAnsibleDeploy.test_get_properties ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_get_properties ... ok GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-417d17bf-7a14-4c69-a5ca-864aeb29c93b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-417d17bf-7a14-4c69-a5ca-864aeb29c93b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-dfd259d5-69b8-4d6a-afca-b57d53a311a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-dfd259d5-69b8-4d6a-afca-b57d53a311a5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-4922c955-db2a-429b-98a0-8604e3080ca9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4922c955-db2a-429b-98a0-8604e3080ca9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-d62d3d90-89ba-468d-b838-32e6bd1a0557 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-d62d3d90-89ba-468d-b838-32e6bd1a0557 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-562d138f-7afe-4106-85fb-ab843e274514 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-562d138f-7afe-4106-85fb-ab843e274514 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-9bb651c0-c41e-4a83-b0b6-f8040d06fdc3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-9bb651c0-c41e-4a83-b0b6-f8040d06fdc3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-762c80f8-0b46-440a-ba0b-f89a65e82c45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-762c80f8-0b46-440a-ba0b-f89a65e82c45 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-46bbcd23-03d9-48b7-ad9a-ad1bd1ae3219 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-46bbcd23-03d9-48b7-ad9a-ad1bd1ae3219 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.ansible.test_deploy.TestAnsibleDeploy.test_prepare ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_add_ports_to_network_instance_uuid ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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_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.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning ... 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.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.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.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.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.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.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_cleaning_with_smartnic_port ... ok ironic.tests.unit.drivers.modules.test_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.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.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_prepare_with_smartnic_port ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_188_lessee_reader_cannot_get_vendor_passthru_methods ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_188_lessee_reader_cannot_get_vendor_passthru_methods ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolDriverTestCase.test_vendor_passthru_validate__bmc_reset_warm_good ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down ... 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.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.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.TestRBACProjectScoped.test_project_scoped_189_owner_admin_cannot_get_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_189_owner_admin_cannot_get_vendor_passthru ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_force_reboot ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_agent_force_reboot ... ok ironic.tests.unit.drivers.modules.test_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.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.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.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_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.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_get_node_portmap ... 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.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.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_maintenance ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_maintenance ... ok ironic.tests.unit.api.test_acl.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.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.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning ... ok ironic.tests.unit.drivers.modules.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.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_neutron_ports ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_tear_down_cleaning_with_smartnic_port ... ok ironic.tests.unit.drivers.modules.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.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.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_validate ... ok ironic.tests.unit.common.test_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.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.ansible.test_deploy.TestAnsibleDeploy.test_write_image ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleDeploy.test_write_image ... 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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-35671e5a-bffc-48a3-b640-f0281957389f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-35671e5a-bffc-48a3-b640-f0281957389f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-67b82feb-71f8-4b48-b0c8-3900d60b9f50 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-67b82feb-71f8-4b48-b0c8-3900d60b9f50 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-f40e0830-e160-413b-9bea-66fb29059cf7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-f40e0830-e160-413b-9bea-66fb29059cf7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-89e8ec3b-559d-43dd-9494-6c420113ef97 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-89e8ec3b-559d-43dd-9494-6c420113ef97 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-8c033675-f1b2-4a38-99a4-3eccd8c9740e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-8c033675-f1b2-4a38-99a4-3eccd8c9740e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-32cb65ac-9071-4494-b4a3-b90d3807be1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-32cb65ac-9071-4494-b4a3-b90d3807be1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-86c92b41-8caa-4088-9e9e-3aa9f39bb2bb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-86c92b41-8caa-4088-9e9e-3aa9f39bb2bb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-fd8684b4-b015-4c68-9ba7-71d919220625 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-fd8684b4-b015-4c68-9ba7-71d919220625 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state ironic.tests.unit.drivers.modules.test_pxe.PXEBootRetryTestCase.test_check_boot_status_wrong_state ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_193_lessee_admin_cannot_get_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_193_lessee_admin_cannot_get_vendor_passthru ... ok ironic.tests.unit.drivers.modules.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_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.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.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.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.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.TestRBACProjectScoped.test_project_scoped_194_lessee_manager_cannot_get_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_194_lessee_manager_cannot_get_vendor_passthru ... ok ironic.tests.unit.drivers.modules.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_neutron.TestNeutronNetworkActions.test_remove_ports_from_network ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_remove_ports_from_network ... 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.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__get_python_interpreter ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.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.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.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_ansible_driver_info_defaults ... ok ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_configdrive ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_deploy_with_configdrive ... 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.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.test_acl.TestRBACProjectScoped.test_project_scoped_196_lessee_reader_cannot_get_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_196_lessee_reader_cannot_get_vendor_passthru ... ok ironic.tests.unit.drivers.modules.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.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports ... 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.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_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.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.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_rollback_ports_exception ... 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.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_agent_down ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__parse_root_device_hints_fail_advanced ... ok ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_clean_steps ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_clean_steps ... 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.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.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_ramdisk.RamdiskDeployTestCase.test_get_deploy_steps ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_get_deploy_steps ... 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_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.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_extra_vars ... ok ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare ... 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.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.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables ... ok ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_active ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_active ... 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.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_configdrive_file ... ok ironic.tests.unit.api.test_acl.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.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_cleaning ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_prepare_cleaning ... 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.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.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.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.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.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f86b7427-6807-40a2-a7f1-cc13a3440655 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-f86b7427-6807-40a2-a7f1-cc13a3440655 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-8278b926-2793-4a8e-b1b4-ea8589b6feae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-8278b926-2793-4a8e-b1b4-ea8589b6feae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-a16df4bd-75b6-4679-a97d-e8658b45ed33 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-a16df4bd-75b6-4679-a97d-e8658b45ed33 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-e227b2b5-482b-414d-9501-55bf7dca3256 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-e227b2b5-482b-414d-9501-55bf7dca3256 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-02343d14-49d4-480b-b1d6-5ff0a83329cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-02343d14-49d4-480b-b1d6-5ff0a83329cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-71ee93d7-7049-4eb7-9f12-cc5d1bec8339 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-71ee93d7-7049-4eb7-9f12-cc5d1bec8339 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-2b104e6b-8807-411b-aa95-5834b1c314b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-2b104e6b-8807-411b-aa95-5834b1c314b8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-0b97626d-ec05-4d06-92f8-bcdc11c959c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-0b97626d-ec05-4d06-92f8-bcdc11c959c2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__prepare_variables_insecure_activated ... ok ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_tear_down_cleaning ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_tear_down_cleaning ... ok ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_validate_port_info_neutron_with_no_smartnic_and_link_info ... ok ironic.tests.unit.drivers.modules.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.TestRBACProjectScoped.test_project_scoped_202_lessee_manager_cannot_post_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_202_lessee_manager_cannot_post_vendor_passthru ... ok ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate ironic.tests.unit.drivers.modules.test_ramdisk.RamdiskDeployTestCase.test_validate ... 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.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_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.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__run_playbook_ansible_interpreter_override ... ok ironic.tests.unit.api.test_acl.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.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.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.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups ... 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.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.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.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.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.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.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_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.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test___init__ ... 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.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.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_verify_sec_groups_more_than_configured ... ok ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing ironic.tests.unit.drivers.modules.ansible.test_deploy.TestAnsibleMethods.test__validate_clean_steps_missing ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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.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_common.DracCommonMethodsTestCase.test_parse_driver_info ironic.tests.unit.drivers.modules.drac.test_common.DracCommonMethodsTestCase.test_parse_driver_info ... 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.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_host_agent_up_target_state_down ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down ironic.tests.unit.common.test_neutron.TestNeutronNetworkActions.test_wait_for_port_status_down ... 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-10fa6bad-47d5-433e-8e2b-6db54e1b2161 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-10fa6bad-47d5-433e-8e2b-6db54e1b2161 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-2167eded-6400-4cff-85d0-2942571b049d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-2167eded-6400-4cff-85d0-2942571b049d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-cb3ab136-52d1-4bba-ba20-14a6e9e60df1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-cb3ab136-52d1-4bba-ba20-14a6e9e60df1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-c2b52909-102e-4ffa-ba03-ce5e575fedb4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-c2b52909-102e-4ffa-ba03-ce5e575fedb4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-efe1291d-875e-4399-a428-74dc791bd838 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-efe1291d-875e-4399-a428-74dc791bd838 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-2733bb1b-4efe-4d57-97f4-d22ab7504df7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-2733bb1b-4efe-4d57-97f4-d22ab7504df7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-7e4f68cb-8e36-46c7-ad7f-78c3f9d08a26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-7e4f68cb-8e36-46c7-ad7f-78c3f9d08a26 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-2575527d-aa38-44f3-a454-a539def7d1a6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-2575527d-aa38-44f3-a454-a539def7d1a6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:node:vendor_passthru\", \"debuginfo\": null}"} ironic.tests.unit.drivers.modules.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.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.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.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.test_snmp.SNMPClientTestCase.test__get_context ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_context ... 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.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.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.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.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.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.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.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_filter_target_raid_config_no_target_raid_config_after_skipping ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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.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.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_fail ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_fail ... ok ironic.tests.unit.drivers.modules.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.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.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid ironic.tests.unit.drivers.modules.drac.test_job.DracJobTestCase.test_validate_job_queue_invalid ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_213_owner_admin_cannot_delete_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_213_owner_admin_cannot_delete_vendor_passthru ... ok ironic.tests.unit.drivers.modules.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.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.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.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.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay ... ok ironic.tests.unit.api.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.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_current_capabilities_empty ... ok ironic.tests.unit.drivers.modules.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.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_okay_no_root_volumes ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test__get_transport_err ... ok ironic.tests.unit.drivers.modules.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.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.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_skip_MAX ironic.tests.unit.common.test_raid.RaidPublicMethodsTestCase.test_update_raid_info_skip_MAX ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_missing ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_missing ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_additional_property ... 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.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.drivers.modules.test_snmp.SNMPClientTestCase.test_get ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get ... 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 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-3d11d0e1-08a2-4301-9248-2bbf6c2207eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-3d11d0e1-08a2-4301-9248-2bbf6c2207eb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-2711accd-c6bc-4d26-81a4-cf8789d948ba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-2711accd-c6bc-4d26-81a4-cf8789d948ba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-70cea5de-4db0-4995-9df2-0eb2c45d56a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-70cea5de-4db0-4995-9df2-0eb2c45d56a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-7f56672b-d939-45b2-9885-efb613085429 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-7f56672b-d939-45b2-9885-efb613085429 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-09545bf2-f55a-4806-8ac2-2fdc4a34530b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-09545bf2-f55a-4806-8ac2-2fdc4a34530b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-61d3b8f9-0260-45e6-8bf0-231544f83e1b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-61d3b8f9-0260-45e6-8bf0-231544f83e1b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-f79e4831-4b83-434a-9f29-75fbafe70921 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-f79e4831-4b83-434a-9f29-75fbafe70921 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-44d70845-c59f-4132-a97f-b0a46e946560 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.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.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.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.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_still_processing ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test__check_import_configuration_task_still_processing ... ok ironic.tests.unit.api.test_acl.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.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.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.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.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_invalid_number_of_phy_disks ... ok ironic.tests.unit.common.test_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.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.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.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.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.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.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.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.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.test_acl.TestRBACProjectScoped.test_project_scoped_219_lessee_member_cannot_delete_vendor_passthru ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_219_lessee_member_cannot_delete_vendor_passthru ... ok ironic.tests.unit.drivers.modules.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.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_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.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.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.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_get_next ... 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.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.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_no_size_gb ... ok ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_okay ... ok ironic.tests.unit.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.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.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.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.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.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.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks ironic.tests.unit.common.test_raid.ValidateRaidConfigurationTestCase.test_validate_configuration_zero_logical_disks ... ok ironic.tests.unit.common.test_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.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_221_owner_reader_get_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_221_owner_reader_get_traits ... ok ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions ... ok ironic.tests.unit.drivers.modules.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.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_objects ... ok ironic.tests.unit.drivers.modules.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.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases ... ok ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects ironic.tests.unit.common.test_release_mappings.GetObjectVersionsTestCase.test_get_object_versions_releases_objects ... ok ironic.tests.unit.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_222_lessee_reader_get_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_222_lessee_reader_get_traits ... 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.drivers.modules.test_snmp.SNMPClientTestCase.test_set ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set ... 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.common.test_rpc_service.TestRPCService.test_start_failure ironic.tests.unit.common.test_rpc_service.TestRPCService.test_start_failure ... 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.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.api.test_acl.TestRBACProjectScoped.test_project_scoped_223_third_party_admin_cannot_get_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_223_third_party_admin_cannot_get_traits ... ok ironic.tests.unit.drivers.modules.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.common.test_states.StatesTest.test_state_values_length ironic.tests.unit.common.test_states.StatesTest.test_state_values_length ... 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.common.test_swift.SwiftTestCase.test___init__ ironic.tests.unit.common.test_swift.SwiftTestCase.test___init__ ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_engine ... ok ironic.tests.unit.drivers.modules.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.common.test_swift.SwiftTestCase.test_create_object ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_224_owner_admin_can_put_traits ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_224_owner_admin_can_put_traits ... ok ironic.tests.unit.drivers.modules.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.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_snmp.SNMPClientTestCase.test_set_err_transport ironic.tests.unit.drivers.modules.test_snmp.SNMPClientTestCase.test_set_err_transport ... 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.common.test_swift.SwiftTestCase.test_create_object_put_object_fails ironic.tests.unit.common.test_swift.SwiftTestCase.test_create_object_put_object_fails ... ok ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-44d70845-c59f-4132-a97f-b0a46e946560 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-9c01990d-ee23-49a8-91a0-c424c287c60d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-9c01990d-ee23-49a8-91a0-c424c287c60d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-8f747df2-beab-463c-a5ff-6ade73dd1775 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-8f747df2-beab-463c-a5ff-6ade73dd1775 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-6c9b2907-0ca9-4cf4-ba3d-d608668302f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-6c9b2907-0ca9-4cf4-ba3d-d608668302f0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-26bcd7be-a21d-4ec8-ac48-80882e189501 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-26bcd7be-a21d-4ec8-ac48-80882e189501 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-96cd2900-5d5b-4789-8c74-7426b52ea954 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"traits": []} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-96cd2900-5d5b-4789-8c74-7426b52ea954 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 Content-Type: application/json Openstack-Request-Id: req-bcd5bacd-1937-4406-9319-dce45fe62793 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"traits": []} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-bcd5bacd-1937-4406-9319-dce45fe62793 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 Content-Type: application/json Openstack-Request-Id: req-63e523d7-d294-4212-982f-ef5145d4ee99 X-Openstack-Ironic-Api-Maximum-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-63e523d7-d294-4212-982f-ef5145d4ee99 X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-43bba435-bc51-4b3f-a13d-ba0c519dea81 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-43bba435-bc51-4b3f-a13d-ba0c519dea81 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.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.common.test_swift.SwiftTestCase.test_delete_object ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object ... 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.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.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.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.common.test_swift.SwiftTestCase.test_delete_object_exc ironic.tests.unit.common.test_swift.SwiftTestCase.test_delete_object_exc ... ok ironic.tests.unit.drivers.modules.drac.test_management.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.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info ironic.tests.unit.drivers.modules.xclarity.test_common.XClarityCommonTestCase.test_parse_driver_info ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_incorrect_schema ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_configuration_incorrect_schema ... ok ironic.tests.unit.drivers.modules.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.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.common.test_swift.SwiftTestCase.test_head_object ironic.tests.unit.common.test_swift.SwiftTestCase.test_head_object ... 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.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.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.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.drac.test_management.DracRedfishManagementTestCase.test_import_export_configuration_success ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_import_export_configuration_success ... ok :283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead 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.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.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.drac.test_management.DracRedfishManagementTestCase.test_known_good_state ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_known_good_state ... ok :283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead 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.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.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac ironic.tests.unit.drivers.modules.drac.test_management.DracRedfishManagementTestCase.test_reset_idrac ... 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.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.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.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.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.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 :283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead ironic.tests.unit.common.test_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.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.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 :283: DeprecationWarning: the load_module() method is deprecated and slated for removal in Python 3.12; use exec_module() instead 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.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices ironic.tests.unit.drivers.modules.xclarity.test_management.XClarityManagementDriverTestCase.test_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.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.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting ironic.tests.unit.common.test_wsgi_service.TestWSGIService.test_workers_set_zero_setting ... 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.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.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.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.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.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.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_candidate_nodes_mismatch ... 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.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 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9d540b9a-87e1-4636-9144-a866da0a616e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9d540b9a-87e1-4636-9144-a866da0a616e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-3b1ad24f-49ae-425a-8dd8-cd4d80a23093 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-3b1ad24f-49ae-425a-8dd8-cd4d80a23093 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-55554a62-d62c-4640-9f59-13325399424b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-55554a62-d62c-4640-9f59-13325399424b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-7610727b-5b67-4ba7-809e-c875587e451b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-7610727b-5b67-4ba7-809e-c875587e451b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-dd7ebab8-45bc-4364-9e20-2e1a7984fac8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-dd7ebab8-45bc-4364-9e20-2e1a7984fac8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-3e5397ad-2989-4c2b-b5b6-88810c1eb0f8 X-Openstack-Ironic-Api-Maximum-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-3e5397ad-2989-4c2b-b5b6-88810c1eb0f8 X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-00873b34-1a93-4966-bfe8-940b550af3e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-00873b34-1a93-4966-bfe8-940b550af3e0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-c4102893-5736-4190-a004-e49bf5c0b474 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c4102893-5736-4190-a004-e49bf5c0b474 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.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.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail ironic.tests.unit.drivers.modules.drac.test_raid.DracQueryRaidConfigurationTestCase.test_list_virtual_disks_fail ... ok ironic.tests.unit.conductor.test_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.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__change_physical_disk_state_attribute_error ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__change_physical_disk_state_attribute_error ... ok ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_non_existing_node ... 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.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.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.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.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.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_resource_class_mismatch ... 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_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.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.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_state_not_active ... 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.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test__validate_argsinfo_arg_unknown_key ... ok ironic.tests.unit.drivers.modules.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.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.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_traits_mismatch ... 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.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_abortable ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_still_processing ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__check_raid_tasks_status_task_still_processing ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_argsinfo ... 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.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__clear_foreign_config_attribute_error ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__clear_foreign_config_attribute_error ... ok ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority ironic.tests.unit.drivers.test_base.CleanStepDecoratorTestCase.test_clean_step_bad_priority ... 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.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_associated_node ... 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_base.RAIDInterfaceTestCase.test_apply_configuration ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration ... 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.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_allocations.BackfillAllocationTestCase.test_with_candidate_nodes ironic.tests.unit.conductor.test_allocations.BackfillAllocationTestCase.test_with_candidate_nodes ... 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.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_no_conversion ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_no_conversion ... ok ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_apply_configuration_invalid ... 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.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_get_logical_disk_properties ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.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.test_base.RAIDInterfaceTestCase.test_validate ironic.tests.unit.drivers.test_base.RAIDInterfaceTestCase.test_validate ... 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.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.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.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.TestBareDriver.test_class_variables ironic.tests.unit.drivers.test_base.TestBareDriver.test_class_variables ... 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.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_boot_interface ... ok ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy_oem ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__convert_controller_to_raid_mode_old_sushy_oem ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_console_interface ... 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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1fb3959f-5a49-4f77-99a6-32758cbe8b73 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-1fb3959f-5a49-4f77-99a6-32758cbe8b73 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-8c45f15a-2b68-4b25-b843-37f5db6fdfe6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-8c45f15a-2b68-4b25-b843-37f5db6fdfe6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-34bf391b-2780-430c-9ef0-cf9145eb42f8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-34bf391b-2780-430c-9ef0-cf9145eb42f8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 Content-Type: application/json Openstack-Request-Id: req-cee6b59b-b16a-4b0a-8dac-c2dfa292c286 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-cee6b59b-b16a-4b0a-8dac-c2dfa292c286 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c4cc8b33-a757-43e1-8784-609b1f7f5b14 X-Openstack-Ironic-Api-Maximum-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-c4cc8b33-a757-43e1-8784-609b1f7f5b14 X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-b18af33e-8d79-44ab-9a90-dacdcdcecbd7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b18af33e-8d79-44ab-9a90-dacdcdcecbd7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-82c5c8a1-f18a-42d1-a346-30af3367d87a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-82c5c8a1-f18a-42d1-a346-30af3367d87a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-b2ab095f-721c-4560-9f45-d70095c63ecf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-b2ab095f-721c-4560-9f45-d70095c63ecf X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_deploy_interface ... ok ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state_maintenance ironic.tests.unit.conductor.test_base_manager.MiscTestCase.test__fail_transient_state_maintenance ... ok ironic.tests.unit.drivers.modules.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.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.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_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.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.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__retry_till_realtime_ready ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.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.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_driver_interfaces ... 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.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.test_fake_hardware.FakeHardwareTestCase.test_get_properties ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_get_properties ... ok ironic.tests.unit.api.test_acl.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.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.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_inspect_interface ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test__set_failed_deploy ... ok ironic.tests.unit.drivers.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.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.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.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.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.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.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_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.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.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_boot_devices ... ok ironic.tests.unit.drivers.modules.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.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_get_supported_indicators ... ok ironic.tests.unit.api.test_acl.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.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.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test__do_next_deploy_step_continue_from_last_step ... ok ironic.tests.unit.drivers.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.drac.test_raid.DracRedfishRAIDTestCase.test_delete_configuration ironic.tests.unit.drivers.modules.drac.test_raid.DracRedfishRAIDTestCase.test_delete_configuration ... ok ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_set_boot_device_good ... ok ironic.tests.unit.api.test_acl.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.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_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.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.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-09729fcf-85d4-4be9-a343-c9af98e28d91 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-09729fcf-85d4-4be9-a343-c9af98e28d91 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-da4829cf-988a-4c0c-8aff-269c1737ffe3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-da4829cf-988a-4c0c-8aff-269c1737ffe3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-6ffa13e9-b9e6-45a7-8324-bbf9b1aaeb5a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-6ffa13e9-b9e6-45a7-8324-bbf9b1aaeb5a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-f0189ccd-6500-4d93-a22b-fe2d62c2d470 X-Openstack-Ironic-Api-Maximum-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-f0189ccd-6500-4d93-a22b-fe2d62c2d470 X-Openstack-Ironic-Api-Maximum-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-3675ac51-50a6-4c04-a6e4-11e619017154 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-3675ac51-50a6-4c04-a6e4-11e619017154 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-fc93368a-f28a-4765-bb64-decd00da2982 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-fc93368a-f28a-4765-bb64-decd00da2982 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-56adf544-1acb-4147-bf4c-d253312c3148 X-Openstack-Ironic-Api-Maximum-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-56adf544-1acb-4147-bf4c-d253312c3148 X-Openstack-Ironic-Api-Maximum-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-54284852-a819-4db8-8668-97afa32237c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-54284852-a819-4db8-8668-97afa32237c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 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.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.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.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_management_interface_validate ... 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.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.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.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface ironic.tests.unit.drivers.test_fake_hardware.FakeHardwareTestCase.test_power_interface ... ok ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_bad_value ... 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.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.objects.test_fields.TestNotificationLevelField.test_coerce_good_value ironic.tests.unit.objects.test_fields.TestNotificationLevelField.test_coerce_good_value ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_supported_set ... ok ironic.tests.unit.api.test_acl.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.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.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.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_allocation_id_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.api.test_acl.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.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.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.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.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_timeout ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerRebootTestCase.test_reboot_timeout ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_automated_clean_supported_set ... ok ironic.tests.unit.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.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.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.ibmc.test_power.IBMCPowerTestCase.test_get_properties ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_get_properties ... 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_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.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.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.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.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.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_node.TestConvertToVersion.test_bios_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_supported_missing ... 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.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.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.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.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.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_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.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.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.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_node.TestConvertToVersion.test_bios_unsupported_set_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_bios_unsupported_set_remove ... 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 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7715e3e4-1914-4ea9-90b2-cbf0256d3f0e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7715e3e4-1914-4ea9-90b2-cbf0256d3f0e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-0390cb94-b00a-4ca3-8357-8d76d71cb195 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0390cb94-b00a-4ca3-8357-8d76d71cb195 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-93a73a0d-0419-4dd3-b986-5d37e6a14f9d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-93a73a0d-0419-4dd3-b986-5d37e6a14f9d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-214fb679-a03e-428a-a33b-57f32044236d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-214fb679-a03e-428a-a33b-57f32044236d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9063b771-7d42-44ef-b61c-878f50768be5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-9063b771-7d42-44ef-b61c-878f50768be5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-72401371-83cf-4b4d-9917-cdeb9b2b8eb3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-72401371-83cf-4b4d-9917-cdeb9b2b8eb3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1ff30b67-7709-4e1c-b193-b543e5e51365 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-1ff30b67-7709-4e1c-b193-b543e5e51365 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-46aa09f5-3af3-4d3c-8f0f-a9b052f50d6e X-Openstack-Ironic-Api-Maximum-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-46aa09f5-3af3-4d3c-8f0f-a9b052f50d6e X-Openstack-Ironic-Api-Maximum-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.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.ibmc.test_power.IBMCPowerTestCase.test_validate ironic.tests.unit.drivers.modules.ibmc.test_power.IBMCPowerTestCase.test_validate ... 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.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.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.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.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.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.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.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_boot_mode_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.drivers.modules.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.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.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.TestConvertToVersion.test_conductor_group_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_conductor_group_supported_set ... 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_continue_node_steps_validation ironic.tests.unit.conductor.test_deployments.DoNextDeployStepTestCase.test_continue_node_steps_validation ... 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.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.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.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.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.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__get_boot_iso_http_url ... ok ironic.tests.unit.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.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.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.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.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.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.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.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_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info ironic.tests.unit.drivers.modules.ilo.test_boot.IloBootPrivateMethodsTestCase.test__validate_driver_info ... 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.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.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.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.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.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.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_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.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.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.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.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_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.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_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.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.objects.test_node.TestConvertToVersion.test_lessee_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_supported_missing ... 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.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.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_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.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_lessee_unsupported_missing ... 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_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.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 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9a00c4f4-b666-49ce-ac39-6d69f8989e80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9a00c4f4-b666-49ce-ac39-6d69f8989e80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-ec73bb26-7226-45bf-8cdd-be6478413a42 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ec73bb26-7226-45bf-8cdd-be6478413a42 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-2dcc2d28-0647-43b9-87bf-6e8d7b649405 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2dcc2d28-0647-43b9-87bf-6e8d7b649405 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-562e6372-52a0-4a77-8f3a-5d3337764158 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-562e6372-52a0-4a77-8f3a-5d3337764158 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-95878f53-ee75-4f25-bf00-501c4134d697 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-95878f53-ee75-4f25-bf00-501c4134d697 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-6d34c5c6-5cde-4ebf-bdd0-44fec613f57f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-6d34c5c6-5cde-4ebf-bdd0-44fec613f57f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-f93e16f9-1b82-4854-b716-ce2e94193ad4 X-Openstack-Ironic-Api-Maximum-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-f93e16f9-1b82-4854-b716-ce2e94193ad4 X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-9c214a19-4e26-4897-9a86-31ea99b731c4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-9c214a19-4e26-4897-9a86-31ea99b731c4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.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.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.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.objects.test_node.TestConvertToVersion.test_owner_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_missing ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_supported_set ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.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_node.TestConvertToVersion.test_owner_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_owner_unsupported_missing ... 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.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.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.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.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_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.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.objects.test_node.TestConvertToVersion.test_protected_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_missing ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.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.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.objects.test_node.TestConvertToVersion.test_protected_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_supported_set ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_protected_unsupported_missing ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_prepare_instance_boot_ramdisk ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_supported_set ... 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.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.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.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.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.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.drivers.modules.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.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove ironic.tests.unit.objects.test_node.TestConvertToVersion.test_rescue_unsupported_set_remove ... ok ironic.tests.unit.api.test_acl.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.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_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_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_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.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.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.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_retired_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.drivers.modules.ilo.test_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.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.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.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.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.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default ironic.tests.unit.objects.test_node.TestConvertToVersion.test_trait_unsupported_set_no_remove_non_default ... ok ironic.tests.unit.drivers.modules.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.objects.test_node.TestConvertToVersion.test_traits_supported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_missing ... ok ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_supported_set ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2f2ac71d-f857-4b06-a7c6-b2e23f130819 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2f2ac71d-f857-4b06-a7c6-b2e23f130819 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-b7d7b978-49b6-40a6-9759-1095f78cefc5 X-Openstack-Ironic-Api-Maximum-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-b7d7b978-49b6-40a6-9759-1095f78cefc5 X-Openstack-Ironic-Api-Maximum-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-b1dec44c-5ab8-4780-8ceb-1f3065449ec2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b1dec44c-5ab8-4780-8ceb-1f3065449ec2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-d4cd7e4f-4d1c-41bb-a8d1-62a91a80d240 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-d4cd7e4f-4d1c-41bb-a8d1-62a91a80d240 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-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-4c104672-564b-4661-80b2-12740224f812 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-4c104672-564b-4661-80b2-12740224f812 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-a85ccf8c-1e84-4289-a9e2-707e3d708dce 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-a85ccf8c-1e84-4289-a9e2-707e3d708dce 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-2c606ab6-1e61-48ac-add0-8866068112c4 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-2c606ab6-1e61-48ac-add0-8866068112c4 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.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.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing ironic.tests.unit.objects.test_node.TestConvertToVersion.test_traits_unsupported_missing ... 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.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.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.objects.test_objects.TestObjectSerializer.test__process_object_api ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_api ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor ironic.tests.unit.objects.test_objects.TestObjectSerializer.test__process_object_convert_conductor ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.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_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.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.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.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.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.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.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate ... 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.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.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.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.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.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_pinned_api ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_inspection ... 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.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_api ... ok ironic.tests.unit.drivers.modules.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.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor ironic.tests.unit.objects.test_objects.TestObjectSerializer.test_serialize_entity_unpinned_conductor ... ok ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check ironic.tests.unit.objects.test_objects.TestObjectVersions.test_object_version_check ... 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.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.objects.test_port.TestConvertToVersion.test_is_smartnic_supported ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_supported ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e6160311-d646-4a0a-aeb0-5f59e538aa43 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-e6160311-d646-4a0a-aeb0-5f59e538aa43 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-94277d42-f06e-4b2d-b65c-7df15bbb78bf 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-06T13:42:42.177090+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-94277d42-f06e-4b2d-b65c-7df15bbb78bf 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-06T13:42:42.177090+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-2284c8c4-7918-446b-a783-1424ad067e81 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-06T13:42:42.877398+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-2284c8c4-7918-446b-a783-1424ad067e81 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-06T13:42:42.877398+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-65fa570f-dcb1-46ba-a8ae-42ad394bf1ee X-Openstack-Ironic-Api-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-65fa570f-dcb1-46ba-a8ae-42ad394bf1ee X-Openstack-Ironic-Api-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/3081e773-346f-4e63-a047-944e394cc407 Openstack-Request-Id: req-921cf087-ae6b-45c9-9b17-5094fdfe35d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "3081e773-346f-4e63-a047-944e394cc407", "created_at": "2024-01-06T13:42:44.199632+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/3081e773-346f-4e63-a047-944e394cc407", "rel": "self"}, {"href": "http://localhost/portgroups/3081e773-346f-4e63-a047-944e394cc407", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/3081e773-346f-4e63-a047-944e394cc407/ports", "rel": "self"}, {"href": "http://localhost/portgroups/3081e773-346f-4e63-a047-944e394cc407/ports", "rel": "bookmark"}]} ACL Test GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/3081e773-346f-4e63-a047-944e394cc407 Openstack-Request-Id: req-921cf087-ae6b-45c9-9b17-5094fdfe35d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "3081e773-346f-4e63-a047-944e394cc407", "created_at": "2024-01-06T13:42:44.199632+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/3081e773-346f-4e63-a047-944e394cc407", "rel": "self"}, {"href": "http://localhost/portgroups/3081e773-346f-4e63-a047-944e394cc407", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/3081e773-346f-4e63-a047-944e394cc407/ports", "rel": "self"}, {"href": "http://localhost/portgroups/3081e773-346f-4e63-a047-944e394cc407/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.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.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.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.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported ... 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.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.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.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing ironic.tests.unit.objects.test_port.TestConvertToVersion.test_is_smartnic_unsupported_missing ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue ironic.tests.unit.drivers.modules.ilo.test_boot.IloVirtualMediaBootTestCase.test_validate_rescue ... 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_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.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_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.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.objects.test_port.TestConvertToVersion.test_name_supported_missing ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_missing ... 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_port.TestConvertToVersion.test_name_supported_set ironic.tests.unit.objects.test_port.TestConvertToVersion.test_name_supported_set ... 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.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.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.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.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_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.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_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.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.TestRBACProjectScoped.test_project_scoped_283_lessee_member_cannot_add_portgroup ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_283_lessee_member_cannot_add_portgroup ... ok ironic.tests.unit.drivers.modules.ilo.test_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.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.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_port.TestConvertToVersion.test_physnet_supported_set ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_supported_set ... 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.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.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing ironic.tests.unit.objects.test_port.TestConvertToVersion.test_physnet_unsupported_missing ... 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.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.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.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.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.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.objects.test_port.TestConvertToVersion.test_vif_in_extra ironic.tests.unit.objects.test_port.TestConvertToVersion.test_vif_in_extra ... ok ironic.tests.unit.api.test_acl.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.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.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.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.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy ... 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 {'deploy_kernel': ('deploy_kernel', '/tmp/tmp6gzhrf55/tmpe29jfypi/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_kernel'), 'deploy_ramdisk': ('deploy_ramdisk', '/tmp/tmp6gzhrf55/tmpe29jfypi/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/deploy_ramdisk')} [NodeHistory(conductor='fake-mini',created_at=2024-01-06T13:35:28Z,event='three',event_type='UNKNOWN',id=3,node_id=10,severity='INFO',updated_at=None,user=None,uuid=383fa414-2e50-4d59-97ea-6a8e11148569), NodeHistory(conductor='fake-mini',created_at=2024-01-06T13:35:28Z,event='two',event_type='UNKNOWN',id=5,node_id=11,severity='INFO',updated_at=None,user=None,uuid=3e8253c5-3f72-4834-b0d3-ca8105e6a59c), NodeHistory(conductor='fake-mini',created_at=2024-01-06T13:35:28Z,event='three',event_type='UNKNOWN',id=6,node_id=11,severity='INFO',updated_at=None,user=None,uuid=bc03cafd-92d5-4f2b-a63b-5393dfece507), NodeHistory(conductor='fake-mini',created_at=2024-01-06T13:35:28Z,event='two',event_type='UNKNOWN',id=8,node_id=12,severity='INFO',updated_at=None,user=None,uuid=08685a02-32ef-4e3f-b2f4-91300d3384f1), NodeHistory(conductor='fake-mini',created_at=2024-01-06T13:35:28Z,event='three',event_type='UNKNOWN',id=9,node_id=12,severity='INFO',updated_at=None,user=None,uuid=3bd0ae52-46b9-43dd-a067-7faba35b3e34), NodeHistory(conductor='fake-mini',created_at=2024-01-06T13:35:28Z,event='final',event_type='UNKNOWN',id=10,node_id=10,severity='INFO',updated_at=None,user=None,uuid=b8cf93a9-4ada-4a3d-bf69-a42792906d73)] 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 GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/55d4be3d-4e03-4804-8866-17213681d1af Openstack-Request-Id: req-9a5311d9-eccb-4e80-83d9-a4417c032677 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "55d4be3d-4e03-4804-8866-17213681d1af", "created_at": "2024-01-06T13:42:45.032707+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/55d4be3d-4e03-4804-8866-17213681d1af", "rel": "self"}, {"href": "http://localhost/portgroups/55d4be3d-4e03-4804-8866-17213681d1af", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/55d4be3d-4e03-4804-8866-17213681d1af/ports", "rel": "self"}, {"href": "http://localhost/portgroups/55d4be3d-4e03-4804-8866-17213681d1af/ports", "rel": "bookmark"}]} ACL Test GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/portgroups/55d4be3d-4e03-4804-8866-17213681d1af Openstack-Request-Id: req-9a5311d9-eccb-4e80-83d9-a4417c032677 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "55d4be3d-4e03-4804-8866-17213681d1af", "created_at": "2024-01-06T13:42:45.032707+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/55d4be3d-4e03-4804-8866-17213681d1af", "rel": "self"}, {"href": "http://localhost/portgroups/55d4be3d-4e03-4804-8866-17213681d1af", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881", "ports": [{"href": "http://localhost/v1/portgroups/55d4be3d-4e03-4804-8866-17213681d1af/ports", "rel": "self"}, {"href": "http://localhost/portgroups/55d4be3d-4e03-4804-8866-17213681d1af/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-4f4c4fa3-e454-4372-b5db-3a0b2539ede0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-4f4c4fa3-e454-4372-b5db-3a0b2539ede0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/portgroups POST: /v1/portgroups {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b0157404-a4d8-4e2f-ac99-5249ce5dba7c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-b0157404-a4d8-4e2f-ac99-5249ce5dba7c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/portgroups POST: /v1/portgroups {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-7deddc77-c7ad-4aae-9050-6087e05e88c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-7deddc77-c7ad-4aae-9050-6087e05e88c5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/portgroups POST: /v1/portgroups {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-21888e21-cb41-4984-b28b-299532438597 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-21888e21-cb41-4984-b28b-299532438597 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/portgroups POST: /v1/portgroups {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ec07aeb7-54ab-49f8-9391-0b559f4f6f74 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-ec07aeb7-54ab-49f8-9391-0b559f4f6f74 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-5c324437-2b74-4df2-a2cf-230bf96592ab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-5c324437-2b74-4df2-a2cf-230bf96592ab X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_invalid ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_invalid ... ok ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_records_lessee ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_records_lessee ... 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.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_common.IloCommonMethodsTestCase.test_add_certificates_true ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_288_lessee_admin_cannot_modify_portgroup ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_288_lessee_admin_cannot_modify_portgroup ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true_default ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_add_certificates_true_default ... ok ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path ... 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.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.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.DoNodeDeployTestCase.test_start_deploy_source_path_none ironic.tests.unit.conductor.test_deployments.DoNodeDeployTestCase.test_start_deploy_source_path_none ... 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.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.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_cleanup_vmedia_boot_exc ... ok ironic.tests.unit.conductor.test_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_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.api.test_acl.TestRBACProjectScoped.test_project_scoped_291_third_party_admin_cannot_modify_portgroup ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_291_third_party_admin_cannot_modify_portgroup ... ok ironic.tests.unit.drivers.modules.ilo.test_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.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_common.IloCommonMethodsTestCase.test_clear_certificates ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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_common.IloCommonMethodsTestCase.test_clear_certificates_default ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_clear_certificates_default ... 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.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_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.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_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 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bdd08149-164b-447b-baf3-aeeb3593beb7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-bdd08149-164b-447b-baf3-aeeb3593beb7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-a5df9300-f58b-42c0-bab5-466e6ed95b9e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-a5df9300-f58b-42c0-bab5-466e6ed95b9e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-1d18f9a3-6787-453a-89eb-8c6eb93c6282 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-1d18f9a3-6787-453a-89eb-8c6eb93c6282 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-9ca76cc5-243b-457d-a8cc-4358cd3dbc6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-9ca76cc5-243b-457d-a8cc-4358cd3dbc6b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-e50afe49-a365-4f61-a770-3d756e80bbe3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-e50afe49-a365-4f61-a770-3d756e80bbe3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:portgroup:update\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 PATCH: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2c350da2-bd38-402c-b593-b13c0736982e X-Openstack-Ironic-Api-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-2c350da2-bd38-402c-b593-b13c0736982e X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-826b0a56-3f64-4a6a-bba6-7606a2fb0df0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-826b0a56-3f64-4a6a-bba6-7606a2fb0df0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-8c010357-6b0b-4111-9eda-0ee0438a56a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8c010357-6b0b-4111-9eda-0ee0438a56a8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.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_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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_copy_image_to_web_server_fails ... ok ironic.tests.unit.api.test_acl.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_destroy_floppy_image_from_web_server ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_destroy_floppy_image_from_web_server ... ok ironic.tests.unit.conductor.test_manager.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_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.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.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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_http_url ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_download_http_url ... ok ironic.tests.unit.api.test_acl.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_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.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.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.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_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.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode_fail ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_current_boot_mode_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile ... ok ironic.tests.unit.conductor.test_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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile_boolean ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_cafile_boolean ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_299_owner_reader_can_get_node_portgroups ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_299_owner_reader_can_get_node_portgroups ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_get_ilo_object_snmp ... ok ironic.tests.unit.drivers.modules.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.test_acl.TestRBACProjectScoped.test_project_scoped_300_lessee_reader_can_get_node_porgtroups ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_300_lessee_reader_can_get_node_porgtroups ... ok ironic.tests.unit.drivers.modules.ilo.test_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.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_boot_timeout ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test__check_cleanwait_timeouts_boot_timeout ... ok ironic.tests.unit.drivers.modules.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 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-c90d7b6f-4c9e-47a3-b43a-ef7cff8ef907 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c90d7b6f-4c9e-47a3-b43a-ef7cff8ef907 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-40af0bed-045e-42c6-9ec1-1ad12aad1bc4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-40af0bed-045e-42c6-9ec1-1ad12aad1bc4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-e3ccaa45-9e1e-4c28-b28b-c1251569bcd3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-e3ccaa45-9e1e-4c28-b28b-c1251569bcd3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8c251359-84ca-4cf0-b2de-907057635e90 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8c251359-84ca-4cf0-b2de-907057635e90 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-26683c94-9bd0-4ce3-9a04-f4dd80e1e0c8 X-Openstack-Ironic-Api-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-26683c94-9bd0-4ce3-9a04-f4dd80e1e0c8 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 6eb02b44-18a3-4659-8c0b-8d2802581ae4 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/portgroups {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-4095633e-1310-4593-aa7a-e21b536a2923 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 Content-Type: application/json Openstack-Request-Id: req-4095633e-1310-4593-aa7a-e21b536a2923 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 Content-Type: application/json Openstack-Request-Id: req-3a4069a4-a7ad-44de-b38c-bb4f31dd87ba 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-3a4069a4-a7ad-44de-b38c-bb4f31dd87ba X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"portgroups": [{"uuid": "6eb02b44-18a3-4659-8c0b-8d2802581ae4", "address": "52:54:00:cf:2d:31", "name": "fooname", "links": [{"href": "http://localhost/v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "self"}, {"href": "http://localhost/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/portgroups {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9e286970-b018-4bc0-a317-05c03a53a571 X-Openstack-Ironic-Api-Maximum-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.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.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.TestRBACProjectScoped.test_project_scoped_302_owner_reader_can_list_ports ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_302_owner_reader_can_list_ports ... ok ironic.tests.unit.drivers.modules.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.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_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.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.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.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.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.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.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.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.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.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts ironic.tests.unit.conductor.test_manager.CheckTimeoutsTestCase.test_check_rescuewait_timeouts ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_305_owner_reader_can_read_port ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_305_owner_reader_can_read_port ... ok ironic.tests.unit.drivers.modules.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.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.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_boot_mode_with_IloOperationError ... ok ironic.tests.unit.api.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.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_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.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.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 ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-9e286970-b018-4bc0-a317-05c03a53a571 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/ports GET: /v1/ports {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-118e6205-4b57-4f7a-a253-9709779fee25 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}, {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-118e6205-4b57-4f7a-a253-9709779fee25 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 Content-Type: application/json Openstack-Request-Id: req-e320483a-b0c4-4ac8-a249-96458fbacd42 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-e320483a-b0c4-4ac8-a249-96458fbacd42 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 Content-Type: application/json Openstack-Request-Id: req-87052552-b884-4976-ad9e-cc174d7b553b 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-87052552-b884-4976-ad9e-cc174d7b553b 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 Content-Type: application/json Openstack-Request-Id: req-018da83c-dbca-4089-b868-b35534f8a445 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-06T13:43:00.438480+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-018da83c-dbca-4089-b868-b35534f8a445 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-06T13:43:00.438480+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-8846c824-21e6-4746-a453-151c9d45168b X-Openstack-Ironic-Api-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-06T13:43:01.203930+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-8846c824-21e6-4746-a453-151c9d45168b X-Openstack-Ironic-Api-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-06T13:43:01.203930+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.ConsoleTestCase.test_enable_console_already_enabled ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_enable_console_already_enabled ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_set_secure_boot_mode_not_supported ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console ... 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.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_false ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_false ... ok ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_fail ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_get_console_validate_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.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_true ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_persistent_true ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled ironic.tests.unit.conductor.test_manager.ConsoleTestCase.test_set_console_mode_disabled ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_309_owner_manager_can_add_ports ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_309_owner_manager_can_add_ports ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_not_supported ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_raises_not_supported ... ok ironic.tests.unit.conductor.test_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.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_scheme_http ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_uefi_https_scheme_http ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_310_owner_admin_cannot_add_ports_to_other_nodes ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_310_owner_admin_cannot_add_ports_to_other_nodes ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia ... 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.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.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_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.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.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.api.test_acl.TestRBACProjectScoped.test_project_scoped_312_owner_member_cannot_add_port ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_312_owner_member_cannot_add_port ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_without_params ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_setup_vmedia_without_params ... ok ironic.tests.unit.conductor.test_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.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_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.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.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.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_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.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_already_destroyed ... ok ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_prop_boot_mode_exist ... ok ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone ironic.tests.unit.conductor.test_manager.DestroyVolumeTargetTestCase.test_destroy_volume_target_node_gone ... 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-c252b85b-4941-4ec9-90e7-01f636b3faca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port abfd8dbb-1732-449a-b760-2224035c6b99 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c252b85b-4941-4ec9-90e7-01f636b3faca X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port abfd8dbb-1732-449a-b760-2224035c6b99 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path post /v1/ports POST: /v1/ports {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'address': '00:01:02:03:04:05'} GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c4d776cf-5c24-4e15-82df-1080f182bafa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c4d776cf-5c24-4e15-82df-1080f182bafa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-d1c7db92-27cb-4760-847c-1eec5e870f6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d1c7db92-27cb-4760-847c-1eec5e870f6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-b8e08ba7-70c8-4a19-9a96-6a0b14b58132 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-b8e08ba7-70c8-4a19-9a96-6a0b14b58132 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-559dfda9-53e0-4fcc-8fca-faed09ff355a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-559dfda9-53e0-4fcc-8fca-faed09ff355a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-90c4b5bc-d012-4c71-b9de-322000191ab5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-90c4b5bc-d012-4c71-b9de-322000191ab5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/ports POST: /v1/ports {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'address': '00:01:02:03:04:05'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-f6edc63e-1f79-4d1c-bec8-2c50ca3e7fcb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-f6edc63e-1f79-4d1c-bec8-2c50ca3e7fcb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/ports POST: /v1/ports {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'address': '00:01:02:03:04:05'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-53920786-fb28-4f27-b4c7-6b77457a08b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-53920786-fb28-4f27-b4c7-6b77457a08b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/ports POST: /v1/ports {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'address': '00:01:02:03:04:05'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-153bba8e-a552-4bfa-8a07-1427d2b7cec3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_315_lessee_member_cannot_add_port ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_315_lessee_member_cannot_add_port ... ok ironic.tests.unit.drivers.modules.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.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.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_update_boot_mode_unknown_except ... ok ironic.tests.unit.conductor.test_manager.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.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.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.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.DoNodeCleanTestCase.test_continue_node_clean_automated ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_automated ... 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.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.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.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values ironic.tests.unit.drivers.modules.ilo.test_common.IloCommonMethodsTestCase.test_validate_security_parameter_values ... ok ironic.tests.unit.drivers.modules.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.api.test_acl.TestRBACProjectScoped.test_project_scoped_318_owner_manager_can_modify_port ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_318_owner_manager_can_modify_port ... ok ironic.tests.unit.drivers.modules.ilo.test_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.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.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.api.test_acl.TestRBACProjectScoped.test_project_scoped_319_owner_member_cannot_modify_port ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_319_owner_member_cannot_modify_port ... ok ironic.tests.unit.drivers.modules.ilo.test_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.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.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.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.test_acl.TestRBACProjectScoped.test_project_scoped_320_lessee_admin_cannot_modify_port ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_320_lessee_admin_cannot_modify_port ... ok ironic.tests.unit.drivers.modules.ilo.test_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.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.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.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.api.test_acl.TestRBACProjectScoped.test_project_scoped_321_lessee_manager_cannot_modify_port ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_321_lessee_manager_cannot_modify_port ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_calls__download_http_based_fw_to ... ok ironic.tests.unit.conductor.test_manager.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.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.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__download_swift_based_fw_to_gets_invoked_for_swift_based_firmware ... ok ironic.tests.unit.api.test_acl.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.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.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.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 ACL Test GOT Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-153bba8e-a552-4bfa-8a07-1427d2b7cec3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:create\", \"debuginfo\": null}"} API ACL Testing Path post /v1/ports POST: /v1/ports {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'address': '00:01:02:03:04:05'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-4773cfcd-1cc7-42b3-b6a2-769ebddbeb07 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-4773cfcd-1cc7-42b3-b6a2-769ebddbeb07 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ff1171c8-bb85-48e8-9878-606046a38183 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ff1171c8-bb85-48e8-9878-606046a38183 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-4d875124-e7cb-4d73-ba90-889eb7210fa3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4d875124-e7cb-4d73-ba90-889eb7210fa3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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-687f154f-15ba-4cd8-9eda-a36b2a43d0a0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-687f154f-15ba-4cd8-9eda-a36b2a43d0a0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-b1e4525b-dc2a-456d-a1ac-0684d3361dfd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-b1e4525b-dc2a-456d-a1ac-0684d3361dfd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ee5e8340-09dc-41e1-b1ba-3f871c430174 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-ee5e8340-09dc-41e1-b1ba-3f871c430174 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-e2e95b11-e239-4cc6-8a1a-f842a604091e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-e2e95b11-e239-4cc6-8a1a-f842a604091e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:update\", \"debuginfo\": null}"} API ACL Testing Path patch /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 PATCH: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dfff907e-0ece-45ef-bb97-c1f58e5e875d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_323_third_party_admin_cannot_modify_port ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_323_third_party_admin_cannot_modify_port ... ok ironic.tests.unit.drivers.modules.ilo.test_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.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_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.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.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full ironic.tests.unit.conductor.test_manager.DoNodeCleanTestCase.test_continue_node_clean_worker_pool_full ... ok ironic.tests.unit.drivers.modules.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.TestRBACProjectScoped.test_project_scoped_325_owner_manager_can_delete_port ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_325_owner_manager_can_delete_port ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test__extract_fw_from_file_uploads_firmware_to_webserver ... ok ironic.tests.unit.drivers.modules.ilo.test_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.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.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_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_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_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.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.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.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_fw_img_loc_sets_these_attributes ... ok ironic.tests.unit.conductor.test_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.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.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.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.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_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_invalid_component ... ok ironic.tests.unit.conductor.test_manager.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.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_get_and_validate_firmware_image_info_fails_for_missing_parameter ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_329_lessee_member_cannot_delete_port ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_329_lessee_member_cannot_delete_port ... ok ironic.tests.unit.drivers.modules.ilo.test_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.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.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.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.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.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 ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-dfff907e-0ece-45ef-bb97-c1f58e5e875d X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-7ddef47f-c6a3-43d5-a91f-591b112dcd80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7ddef47f-c6a3-43d5-a91f-591b112dcd80 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-ce45cebc-e1a7-4138-877f-e642d557af53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-ce45cebc-e1a7-4138-877f-e642d557af53 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-4454836c-6000-4ac9-a4a6-538d38107fc5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-4454836c-6000-4ac9-a4a6-538d38107fc5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-ef4c235c-4b50-4f82-acc1-25a99f06957d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-ef4c235c-4b50-4f82-acc1-25a99f06957d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-79a2217d-d91b-4200-99c6-01578c7f4250 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-79a2217d-d91b-4200-99c6-01578c7f4250 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-0e363e2a-92db-4c63-8528-9c2b17743a5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-0e363e2a-92db-4c63-8528-9c2b17743a5d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:port:delete\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cf46c319-ec7d-444a-9f4c-7ff91847c114 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Port 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cf46c319-ec7d-444a-9f4c-7ff91847c114 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0f4e9556-7d2f-434e-abbd-1cda16b822da 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.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.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.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.TestRBACProjectScoped.test_project_scoped_332_lessee_reader_can_get_node_port ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_332_lessee_reader_can_get_node_port ... ok ironic.tests.unit.drivers.modules.ilo.test_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_manager.DoNodeRescueTestCase.test__do_node_rescue_abort ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort ... 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.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_abort_clean_up_fail ... ok ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file ironic.tests.unit.drivers.modules.ilo.test_firmware_processor.FirmwareProcessorTestCase.test_process_fw_on_verifies_checksum_of_downloaded_fw_file ... ok ironic.tests.unit.drivers.modules.ilo.test_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.api.test_acl.TestRBACProjectScoped.test_project_scoped_334_owner_reader_can_get_ports_by_portgroup ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_334_owner_reader_can_get_ports_by_portgroup ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_bad_state ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_excluded_capability ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_gpu_capabilities ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test___create_supported_capabilities_dict_gpu_capabilities ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_335_lessee_reader_can_get_ports_by_portgroup ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_335_lessee_reader_can_get_ports_by_portgroup ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__get_capabilities_ok ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_errors ... ok ironic.tests.unit.drivers.modules.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.api.test_acl.TestRBACProjectScoped.test_project_scoped_336_third_party_admin_cannot_get_ports_by_portgroup ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_336_third_party_admin_cannot_get_ports_by_portgroup ... ok ironic.tests.unit.drivers.modules.ilo.test_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.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.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.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_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_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.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_rescue_returns_rescuewait ... ok ironic.tests.unit.drivers.modules.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.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 ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-0f4e9556-7d2f-434e-abbd-1cda16b822da X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": [{"uuid": "ebe30f19-358d-41e1-8d28-fd7357a0164c", "address": "00:00:00:00:00:01", "links": [{"href": "http://localhost/v1/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "self"}, {"href": "http://localhost/ports/ebe30f19-358d-41e1-8d28-fd7357a0164c", "rel": "bookmark"}]}, {"uuid": "21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "address": "00:00:00:00:00:02", "links": [{"href": "http://localhost/v1/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "self"}, {"href": "http://localhost/ports/21a3c5a7-1e14-44dc-a9dd-0c84d5477a57", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-fbd93165-635b-4f4b-bceb-3c9f7b396072 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-fbd93165-635b-4f4b-bceb-3c9f7b396072 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "address": "52:54:00:cf:2d:31", "links": [{"href": "http://localhost/v1/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/ports/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}]}]} API ACL Testing Path get /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports GET: /v1/nodes/38d5abed-c585-4fce-a57e-a2ffc2a2ec6f/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-d2ba637f-bde2-47a6-8ccb-2839836cdf3a X-Openstack-Ironic-Api-Maximum-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-d2ba637f-bde2-47a6-8ccb-2839836cdf3a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports GET: /v1/portgroups/b16efcf3-2990-41a1-bc1d-5e2c16f3d5fc/ports {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c3a06a0f-465d-4cd8-922a-5d0ef9115773 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-c3a06a0f-465d-4cd8-922a-5d0ef9115773 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": []} API ACL Testing Path get /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports GET: /v1/portgroups/6eb02b44-18a3-4659-8c0b-8d2802581ae4/ports {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-1af861ee-5f96-44f0-a113-f46747b0dc51 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-1af861ee-5f96-44f0-a113-f46747b0dc51 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"ports": []} API ACL Testing Path get /v1/portgroups/5810f41c-6585-41fc-b9c9-a94f50d421b5/ports GET: /v1/portgroups/5810f41c-6585-41fc-b9c9-a94f50d421b5/ports {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2995074a-b9dc-4d5a-8d01-52f39ba987e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2995074a-b9dc-4d5a-8d01-52f39ba987e9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Portgroup 5810f41c-6585-41fc-b9c9-a94f50d421b5 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/volume/connectors GET: /v1/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-235deffd-6e01-488d-be2b-5900befa3973 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"connectors": [{"uuid": "65ea0296-219b-4635-b0c8-a6e055da878d", "connector_id": "iqn.2012-06.org.openstack.magic", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "self"}, {"href": "http://localhost/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}, {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-235deffd-6e01-488d-be2b-5900befa3973 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"connectors": [{"uuid": "65ea0296-219b-4635-b0c8-a6e055da878d", "connector_id": "iqn.2012-06.org.openstack.magic", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "self"}, {"href": "http://localhost/volume/connectors/65ea0296-219b-4635-b0c8-a6e055da878d", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}, {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} API ACL Testing Path get /v1/volume/connectors GET: /v1/volume/connectors {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f3462bb4-9655-42d8-aa82-d77da49ac1db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"connectors": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "connector_id": "iqn.2012-06.com.example:initiator", "type": "iqn", "links": [{"href": "http://localhost/v1/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/connectors/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_338_lessee_reader_can_list_volume_connectors ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_338_lessee_reader_can_list_volume_connectors ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok ironic.tests.unit.drivers.modules.ilo.test_inspect.TestInspectPrivateMethods.test__validate_ok ... 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.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.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.ilo.test_power.IloPowerTestCase.test_get_properties ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_properties ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__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_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.ilo.test_power.IloPowerTestCase.test_get_supported_power_states ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_get_supported_power_states ... ok ironic.tests.unit.drivers.modules.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.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.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_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.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_no_timeout ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_set_power_state_timeout ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_342_lessee_admin_cannot_post_volume_connector ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_342_lessee_admin_cannot_post_volume_connector ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test__do_node_unrescue_other_error ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerTestCase.test_validate_fail ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.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.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue ... ok ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty ironic.tests.unit.drivers.modules.intel_ipmi.test_management.IntelIPMIManagementTestCase.test_configure_intel_speedselect_empty ... ok ironic.tests.unit.drivers.modules.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_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.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.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.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.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_maintenance ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info ... ok ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f3462bb4-9655-42d8-aa82-d77da49ac1db 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 Content-Type: application/json Openstack-Request-Id: req-54749cc5-5432-4e53-be21-4e6326dc45e1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"connectors": []} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-54749cc5-5432-4e53-be21-4e6326dc45e1 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 Content-Type: application/json Location: http://localhost/v1/volume/connectors/18343a0e-3f38-4d83-8541-9adf0a6c91af Openstack-Request-Id: req-a4c78d6c-467d-4a80-8dce-da2a0a5e5199 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "18343a0e-3f38-4d83-8541-9adf0a6c91af", "created_at": "2024-01-06T13:43:23.328210+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/18343a0e-3f38-4d83-8541-9adf0a6c91af", "rel": "self"}, {"href": "http://localhost/volume/connectors/18343a0e-3f38-4d83-8541-9adf0a6c91af", "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/18343a0e-3f38-4d83-8541-9adf0a6c91af Openstack-Request-Id: req-a4c78d6c-467d-4a80-8dce-da2a0a5e5199 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "18343a0e-3f38-4d83-8541-9adf0a6c91af", "created_at": "2024-01-06T13:43:23.328210+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/18343a0e-3f38-4d83-8541-9adf0a6c91af", "rel": "self"}, {"href": "http://localhost/volume/connectors/18343a0e-3f38-4d83-8541-9adf0a6c91af", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} API ACL Testing Path post /v1/volume/connectors POST: /v1/volume/connectors {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/connectors/cff2905f-06a1-4f52-aee2-b5ce6746a04e Openstack-Request-Id: req-8cf3c3c6-b7cd-46be-9d2b-3df82a53ba87 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "cff2905f-06a1-4f52-aee2-b5ce6746a04e", "created_at": "2024-01-06T13:43:23.987812+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/cff2905f-06a1-4f52-aee2-b5ce6746a04e", "rel": "self"}, {"href": "http://localhost/volume/connectors/cff2905f-06a1-4f52-aee2-b5ce6746a04e", "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/cff2905f-06a1-4f52-aee2-b5ce6746a04e Openstack-Request-Id: req-8cf3c3c6-b7cd-46be-9d2b-3df82a53ba87 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "cff2905f-06a1-4f52-aee2-b5ce6746a04e", "created_at": "2024-01-06T13:43:23.987812+00:00", "updated_at": null, "connector_id": "192.168.1.100", "extra": {}, "type": "ip", "links": [{"href": "http://localhost/v1/volume/connectors/cff2905f-06a1-4f52-aee2-b5ce6746a04e", "rel": "self"}, {"href": "http://localhost/volume/connectors/cff2905f-06a1-4f52-aee2-b5ce6746a04e", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} API ACL Testing Path post /v1/volume/connectors POST: /v1/volume/connectors {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'type': 'ip', 'connector_id': '192.168.1.100'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-42169f03-564a-4068-9ad4-8e211ccaa08c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-42169f03-564a-4068-9ad4-8e211ccaa08c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-96f91e15-3fa0-42d2-87f2-97e9970d71f2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-96f91e15-3fa0-42d2-87f2-97e9970d71f2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-b75efa5f-4cc1-4071-9f8c-0910c399ba51 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-b75efa5f-4cc1-4071-9f8c-0910c399ba51 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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.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.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.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.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.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.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_power_validate_fail ... ok ironic.tests.unit.drivers.modules.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.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.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.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_rescue_when_rescue_validate_fail ... ok ironic.tests.unit.drivers.modules.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.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.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.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue ... 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_349_owner_admin_can_patch_volume_connectors ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_349_owner_admin_can_patch_volume_connectors ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_port ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_password ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_priv_password ... ok ironic.tests.unit.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.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_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_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.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_security ... ok ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail ironic.tests.unit.conductor.test_manager.DoNodeRescueTestCase.test_do_node_unrescue_validate_fail ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_user ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_user ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_invalid_snmp_version ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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.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.conductor.test_manager.IndicatorsTestCase.test_get_supported_indicators ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_get_supported_indicators ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f432615b-8824-4c0e-b5c2-f37c70b31c13 X-Openstack-Ironic-Api-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-06T13:43:26.258235+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-f432615b-8824-4c0e-b5c2-f37c70b31c13 X-Openstack-Ironic-Api-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-06T13:43:26.258235+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-436bf654-0c7d-4213-9463-1882b6dea3e5 X-Openstack-Ironic-Api-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-06T13:43:26.757734+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-436bf654-0c7d-4213-9463-1882b6dea3e5 X-Openstack-Ironic-Api-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-06T13:43:26.757734+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-a5aa4e02-f786-4360-bb82-9a9db1f4972d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-a5aa4e02-f786-4360-bb82-9a9db1f4972d X-Openstack-Ironic-Api-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-bfa5c263-49f9-4c62-97ad-fcfd6a7afd0b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-bfa5c263-49f9-4c62-97ad-fcfd6a7afd0b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-958a9b86-549f-47db-b946-5a222beed3de X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-958a9b86-549f-47db-b946-5a222beed3de X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-4e4edc64-fe19-402d-8db3-9dfeba5ecd34 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4e4edc64-fe19-402d-8db3-9dfeba5ecd34 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-0fe2a484-8909-4b27-ad07-6ca510069dd1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0fe2a484-8909-4b27-ad07-6ca510069dd1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state ironic.tests.unit.conductor.test_manager.IndicatorsTestCase.test_set_indicator_state ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeout ... ok ironic.tests.unit.conductor.test_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.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.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.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exit_with_other_exception ... ok ironic.tests.unit.drivers.modules.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.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_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_exiting_no_worker_avail ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username ironic.tests.unit.drivers.modules.irmc.test_common.IRMCValidateParametersTestCase.test_parse_driver_info_missing_username ... ok ironic.tests.unit.conductor.test_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.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.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.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_not_mapped ... ok ironic.tests.unit.drivers.modules.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.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.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.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.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit ironic.tests.unit.conductor.test_manager.ManagerCheckInspectWaitTimeoutsTestCase.test__check_inspect_timeouts_worker_limit ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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.NmiTestCase.test_inject_nmi ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi ... 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.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_manager.NmiTestCase.test_inject_nmi_not_implemented ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_not_implemented ... 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.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.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_invalid_param ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_get_properties ... 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.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param ironic.tests.unit.conductor.test_manager.NmiTestCase.test_inject_nmi_validate_missing_param ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_1_nodes_8_workers ... ok ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers ironic.tests.unit.conductor.test_manager.ParallelPowerSyncTestCase.test__sync_power_states_6_nodes_8_workers ... ok ironic.tests.unit.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.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.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_reboot_reboot ... 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-715d3275-df2b-4a4d-bf27-5b0f56f1ee0b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-715d3275-df2b-4a4d-bf27-5b0f56f1ee0b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-c2748a26-367f-483f-a7e1-92c28435e970 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c2748a26-367f-483f-a7e1-92c28435e970 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-2a23e764-e287-4d4f-a02c-76c94a9f7c62 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-2a23e764-e287-4d4f-a02c-76c94a9f7c62 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8b2e158b-44ef-47a7-9ced-afa5a0b01ac5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8b2e158b-44ef-47a7-9ced-afa5a0b01ac5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-b35cecc7-15cc-48a9-b9a2-e1e930eacf68 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b35cecc7-15cc-48a9-b9a2-e1e930eacf68 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-cfed5999-c37b-4ff4-8ecc-a2d08feaa2e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-cfed5999-c37b-4ff4-8ecc-a2d08feaa2e2 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-23444d74-82c4-4868-9cec-165801ce2c21 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-23444d74-82c4-4868-9cec-165801ce2c21 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-cf867878-28ac-41de-8841-729eef694a56 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume connector 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-cf867878-28ac-41de-8841-729eef694a56 X-Openstack-Ironic-Api-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.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.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.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.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.conductor.test_manager.TestIndirectionApiConductor.test_object_action ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action ... 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.TestIndirectionApiConductor.test_object_action_copies_object ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_copies_object ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_set_power_state_timeout ... ok ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_action_on_object ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.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.irmc.test_power.IRMCPowerTestCase.test_validate ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate ... 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.irmc.test_power.IRMCPowerTestCase.test_validate_fail ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerTestCase.test_validate_fail ... ok ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action ironic.tests.unit.conductor.test_manager.TestIndirectionApiConductor.test_object_class_action ... 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.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.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.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.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.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.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.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationTestCase.test_delete_raid_configuration ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_associate_node_powered_on ... ok ironic.tests.unit.drivers.modules.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 GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e8c8ad0a-430a-4dac-9146-ee27642dcd21 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}, {"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e8c8ad0a-430a-4dac-9146-ee27642dcd21 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 Content-Type: application/json Openstack-Request-Id: req-74b7e2fb-ec1e-4d8e-87aa-63cdc88908cb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-74b7e2fb-ec1e-4d8e-87aa-63cdc88908cb 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 Content-Type: application/json Openstack-Request-Id: req-eaf9285c-4b57-41ef-be6f-5fd9892198d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"targets": []} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-eaf9285c-4b57-41ef-be6f-5fd9892198d3 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 Content-Type: application/json Openstack-Request-Id: req-0c5c4d54-5c5f-49c4-9c79-77b75f5c3ad2 X-Openstack-Ironic-Api-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-06T13:43:36.776339+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-0c5c4d54-5c5f-49c4-9c79-77b75f5c3ad2 X-Openstack-Ironic-Api-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-06T13:43:36.776339+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-357abd70-bffc-4f2c-9b80-fd04e9187df9 X-Openstack-Ironic-Api-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-06T13:43:37.272331+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-357abd70-bffc-4f2c-9b80-fd04e9187df9 X-Openstack-Ironic-Api-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-06T13:43:37.272331+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.conductor.test_manager.UpdateNodeTestCase.test_update_node ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node ... 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.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_already_associated ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.UpdateNodeTestCase.test_update_node_deleting_allocation ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.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.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_forbidden ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_deleting_allocation_in_maintenance ... ok ironic.tests.unit.drivers.modules.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.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.conductor.test_manager.UpdateNodeTestCase.test_update_node_fix_broken_interface ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_fix_broken_interface ... ok ironic.tests.unit.api.test_acl.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.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.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_from_invalid_driver ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_hardware_type ... ok ironic.tests.unit.conductor.test_manager.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 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-43447440-065c-43b7-a945-3f9d91ee0109 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-43447440-065c-43b7-a945-3f9d91ee0109 X-Openstack-Ironic-Api-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 Content-Type: application/json Location: http://localhost/v1/volume/targets/22f68e04-4afd-46e3-922a-68bd17d820dd Openstack-Request-Id: req-65bcc873-453e-4200-b8e7-386f4c1eb6b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "22f68e04-4afd-46e3-922a-68bd17d820dd", "created_at": "2024-01-06T13:43:38.495486+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/22f68e04-4afd-46e3-922a-68bd17d820dd", "rel": "self"}, {"href": "http://localhost/volume/targets/22f68e04-4afd-46e3-922a-68bd17d820dd", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} ACL Test GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/22f68e04-4afd-46e3-922a-68bd17d820dd Openstack-Request-Id: req-65bcc873-453e-4200-b8e7-386f4c1eb6b6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "22f68e04-4afd-46e3-922a-68bd17d820dd", "created_at": "2024-01-06T13:43:38.495486+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/22f68e04-4afd-46e3-922a-68bd17d820dd", "rel": "self"}, {"href": "http://localhost/volume/targets/22f68e04-4afd-46e3-922a-68bd17d820dd", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} API ACL Testing Path post /v1/volume/targets POST: /v1/volume/targets {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'volume_type': 'iscsi', 'boot_index': 3, 'volume_id': 'test-id'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/61a6c6b3-c2c4-417a-9516-dbc4149964bf Openstack-Request-Id: req-2779a725-fdc0-4289-9a8d-663aadf9d3ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "61a6c6b3-c2c4-417a-9516-dbc4149964bf", "created_at": "2024-01-06T13:43:39.080001+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/61a6c6b3-c2c4-417a-9516-dbc4149964bf", "rel": "self"}, {"href": "http://localhost/volume/targets/61a6c6b3-c2c4-417a-9516-dbc4149964bf", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} ACL Test GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/61a6c6b3-c2c4-417a-9516-dbc4149964bf Openstack-Request-Id: req-2779a725-fdc0-4289-9a8d-663aadf9d3ae X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "61a6c6b3-c2c4-417a-9516-dbc4149964bf", "created_at": "2024-01-06T13:43:39.080001+00:00", "updated_at": null, "boot_index": 3, "extra": {}, "properties": {}, "volume_id": "test-id", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/61a6c6b3-c2c4-417a-9516-dbc4149964bf", "rel": "self"}, {"href": "http://localhost/volume/targets/61a6c6b3-c2c4-417a-9516-dbc4149964bf", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} API ACL Testing Path post /v1/volume/targets POST: /v1/volume/targets {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': 'test-id2'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/9da92619-acf5-4aec-b83f-527deb3026a2 Openstack-Request-Id: req-17e201ec-9efb-40e7-8720-a453c3aa1bfe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "9da92619-acf5-4aec-b83f-527deb3026a2", "created_at": "2024-01-06T13:43:39.676630+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9da92619-acf5-4aec-b83f-527deb3026a2", "rel": "self"}, {"href": "http://localhost/volume/targets/9da92619-acf5-4aec-b83f-527deb3026a2", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} ACL Test GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/9da92619-acf5-4aec-b83f-527deb3026a2 Openstack-Request-Id: req-17e201ec-9efb-40e7-8720-a453c3aa1bfe X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "9da92619-acf5-4aec-b83f-527deb3026a2", "created_at": "2024-01-06T13:43:39.676630+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id2", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/9da92619-acf5-4aec-b83f-527deb3026a2", "rel": "self"}, {"href": "http://localhost/volume/targets/9da92619-acf5-4aec-b83f-527deb3026a2", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} API ACL Testing Path post /v1/volume/targets POST: /v1/volume/targets {'node_uuid': '38d5abed-c585-4fce-a57e-a2ffc2a2ec6f', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': 'test-id3'} GOT:Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/6c512e84-b575-4416-a62d-a5e17c8f61b9 Openstack-Request-Id: req-6f80a511-c48c-4206-ab7e-0ea23aa0499c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "6c512e84-b575-4416-a62d-a5e17c8f61b9", "created_at": "2024-01-06T13:43:40.160120+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6c512e84-b575-4416-a62d-a5e17c8f61b9", "rel": "self"}, {"href": "http://localhost/volume/targets/6c512e84-b575-4416-a62d-a5e17c8f61b9", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} ACL Test GOT Response: 201 Created Content-Type: application/json Location: http://localhost/v1/volume/targets/6c512e84-b575-4416-a62d-a5e17c8f61b9 Openstack-Request-Id: req-6f80a511-c48c-4206-ab7e-0ea23aa0499c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "6c512e84-b575-4416-a62d-a5e17c8f61b9", "created_at": "2024-01-06T13:43:40.160120+00:00", "updated_at": null, "boot_index": 2, "extra": {}, "properties": {}, "volume_id": "test-id3", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/6c512e84-b575-4416-a62d-a5e17c8f61b9", "rel": "self"}, {"href": "http://localhost/volume/targets/6c512e84-b575-4416-a62d-a5e17c8f61b9", "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.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.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.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.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.network.test_flat.TestFlatInterface.test_add_rescuing_network ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_add_rescuing_network ... ok ironic.tests.unit.drivers.modules.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.network.test_flat.TestFlatInterface.test_init_no_cleaning_network ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_init_no_cleaning_network ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.network.test_flat.TestFlatInterface.test_remove_cleaning_network ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network ... ok ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_remove_cleaning_network_from_node ... ok ironic.tests.unit.drivers.modules.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.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.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.network.test_flat.TestFlatInterface.test_validate ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate ... 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.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.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.network.test_flat.TestFlatInterface.test_validate_inspection ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_validate_inspection ... ok ironic.tests.unit.drivers.modules.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.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.network.test_flat.TestFlatInterface.test_vif_attach ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_attach ... 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.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach ironic.tests.unit.drivers.modules.network.test_flat.TestFlatInterface.test_vif_detach ... ok ironic.tests.unit.api.test_acl.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.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.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.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.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.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_invalid_driver ... ok POST: /v1/volume/targets {'node_uuid': '1ab63b9e-66d7-4cd7-8618-dddd0f9f7881', 'volume_type': 'iscsi', 'boot_index': 2, 'volume_id': 'test-id'} GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-5af2bb78-5cb9-477b-bf06-dcbc3115e73b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-5af2bb78-5cb9-477b-bf06-dcbc3115e73b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-519a18d4-9279-44ad-b499-5e985ba6d4b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-519a18d4-9279-44ad-b499-5e985ba6d4b7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-e4266f8d-d501-407c-9650-e82587271171 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e4266f8d-d501-407c-9650-e82587271171 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-0196aad7-994f-4855-8f50-e65a4428fc1c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-0196aad7-994f-4855-8f50-e65a4428fc1c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-5861e0b6-722d-4348-9002-e8f938045efd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-5861e0b6-722d-4348-9002-e8f938045efd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1edd493b-b151-4fad-aec2-347f363df316 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1edd493b-b151-4fad-aec2-347f363df316 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-29263773-6fac-43e6-9685-50412c2054e3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-29263773-6fac-43e6-9685-50412c2054e3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-8a2c25ed-80c1-4210-a736-1c3e1660f7f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-8a2c25ed-80c1-4210-a736-1c3e1660f7f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_done ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_done ... ok ironic.tests.unit.conductor.test_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.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_management.RedfishManagementTestCase.test__check_node_firmware_update_fail ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_fail ... ok ironic.tests.unit.conductor.test_manager.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.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_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.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_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.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.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.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.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.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_task_monitor_not_found ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__check_node_firmware_update_task_monitor_not_found ... ok ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_protected_unset ... 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.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.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.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.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_reason_without_retired ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_node_retired_reason_without_retired ... ok ironic.tests.unit.drivers.modules.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.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.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.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_wait ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__continue_firmware_updates_wait ... ok ironic.tests.unit.drivers.modules.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.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.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.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_fan ... ok ironic.tests.unit.drivers.modules.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.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.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test__get_sensors_temperatures ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4c08e241-3777-4ebf-ab8b-4d5cc7b11e73 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-4c08e241-3777-4ebf-ab8b-4d5cc7b11e73 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-c453ed09-d096-4bd0-9443-7ecc75872c6c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c453ed09-d096-4bd0-9443-7ecc75872c6c X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-6988fdf8-bc97-428c-a2a2-a027f784628d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-6988fdf8-bc97-428c-a2a2-a027f784628d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Access was denied to the following resource: baremetal:volume:delete\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 DELETE: /v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781 GOT:Response: 403 Forbidden Content-Type: application/json Openstack-Request-Id: req-90ea3e71-7f6f-410d-9456-18da51d7b8f7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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-90ea3e71-7f6f-410d-9456-18da51d7b8f7 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-014de833-9c3a-43b6-b98c-c6da88537519 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Volume target 1be26c0b-03f2-4d2e-ae87-c02d7f33c781 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-014de833-9c3a-43b6-b98c-c6da88537519 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c22a7026-8fd5-44fd-abd9-20b653b0d309 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 Content-Type: application/json Openstack-Request-Id: req-c22a7026-8fd5-44fd-abd9-20b653b0d309 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 Content-Type: application/json Openstack-Request-Id: req-93934807-6ffd-4cbf-9564-cbfcdb03d83f 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 Content-Type: application/json Openstack-Request-Id: req-93934807-6ffd-4cbf-9564-cbfcdb03d83f 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 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-87192ea6-6b2d-4349-b226-f2fc0c93419a X-Openstack-Ironic-Api-Maximum-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.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.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.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_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.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.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.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed ironic.tests.unit.conductor.test_manager.UpdateNodeTestCase.test_update_resource_class_not_allowed ... ok ironic.tests.unit.api.test_acl.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.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_clear_secure_boot ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.UpdatePortTestCase.test_update_port ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port ... 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.redfish.test_management.RedfishManagementTestCase.test_detect_vendor ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_detect_vendor ... 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.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.api.test_acl.TestRBACProjectScoped.test_project_scoped_389_owner_reader_cannot_get_drivers ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_389_owner_reader_cannot_get_drivers ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_address_maintenance ... ok ironic.tests.unit.api.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.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.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.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_no_ports_found ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_mac_addresses_no_ports_found ... ok ironic.tests.unit.drivers.modules.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.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.redfish.test_management.RedfishManagementTestCase.test_get_properties ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_get_properties ... 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.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_node_locked ... ok ironic.tests.unit.drivers.modules.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.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.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.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_maintenance ... ok ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-87192ea6-6b2d-4349-b226-f2fc0c93419a X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-359acc45-2361-467e-a7a3-ecfa78d32649 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"targets": [{"uuid": "a265e2f0-e97f-4177-b1c0-8298add53086", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "self"}, {"href": "http://localhost/volume/targets/a265e2f0-e97f-4177-b1c0-8298add53086", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-359acc45-2361-467e-a7a3-ecfa78d32649 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 Content-Type: application/json Openstack-Request-Id: req-73fc79ac-f568-46ee-8bd0-029a8f5bf987 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"targets": [{"uuid": "1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "boot_index": 0, "volume_id": "12345678", "volume_type": "iscsi", "links": [{"href": "http://localhost/v1/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "self"}, {"href": "http://localhost/volume/targets/1be26c0b-03f2-4d2e-ae87-c02d7f33c781", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-73fc79ac-f568-46ee-8bd0-029a8f5bf987 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-a5838ed2-767b-4020-ae51-4aaa58b0c09f X-Openstack-Ironic-Api-Maximum-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-a5838ed2-767b-4020-ae51-4aaa58b0c09f X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-fa01de66-82ee-44cd-b893-a359649e89f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-fa01de66-82ee-44cd-b893-a359649e89f6 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers GET: /v1/drivers {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-59ddaaae-c4c1-4ffc-a38b-0092ae3113b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-59ddaaae-c4c1-4ffc-a38b-0092ae3113b9 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/drivers GET: /v1/drivers {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b66be2b1-e134-4673-aedd-d1a9775c38b4 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-b66be2b1-e134-4673-aedd-d1a9775c38b4 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-4ad87072-a0d0-4d6b-a01b-2de77569b002 X-Openstack-Ironic-Api-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.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.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_node_deleting_state ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_physnet_validation_failure_conflict ... ok ironic.tests.unit.api.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.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.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.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.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.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.redfish.test_management.RedfishManagementTestCase.test_inject_nmi ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi ... 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.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.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node ironic.tests.unit.conductor.test_manager.UpdatePortTestCase.test_update_port_portgroup_enroll_node ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_inject_nmi_fail ... ok ironic.tests.unit.api.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.redfish.test_management.RedfishManagementTestCase.test_loading_error ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_loading_error ... 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.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.conductor.test_manager.VifTestCase.test_vif_attach ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default_not_implemented ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_reset_secure_boot_to_default_not_implemented ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_node_locked ... 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.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.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_network_error ... ok ironic.tests.unit.drivers.modules.redfish.test_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.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.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.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.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_raises_vif_invalid_for_attach ... ok ironic.tests.unit.drivers.modules.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_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.conductor.test_manager.VifTestCase.test_vif_attach_validate_error ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_attach_validate_error ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach ... ok ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_node_locked ... ok ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4ad87072-a0d0-4d6b-a01b-2de77569b002 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-ce49e860-160c-4d5f-893c-12395cd7e99f X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-ce49e860-160c-4d5f-893c-12395cd7e99f X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-786a7979-beab-48c5-a8d1-adedf67cb841 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:driver:vendor_passthru\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-786a7979-beab-48c5-a8d1-adedf67cb841 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-c26711be-ab43-4c7e-a233-883ef6a6e66b X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"bios": []} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c26711be-ab43-4c7e-a233-883ef6a6e66b 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 Content-Type: application/json Openstack-Request-Id: req-74a6e00f-d5be-485a-8d33-19807516f507 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"bios": []} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-74a6e00f-d5be-485a-8d33-19807516f507 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 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-24a5619f-ba4c-4c29-ae9c-adee47c3d1e0 X-Openstack-Ironic-Api-Maximum-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-24a5619f-ba4c-4c29-ae9c-adee47c3d1e0 X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-148d1278-c40f-438f-b623-6f80f6d6cbc3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:conductor:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-148d1278-c40f-438f-b623-6f80f6d6cbc3 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0efcbe85-0847-4cf9-8132-42f3a847e538 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:conductor:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0efcbe85-0847-4cf9-8132-42f3a847e538 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-1b14cdeb-0320-490a-848f-4752639c22df X-Openstack-Ironic-Api-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.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.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.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_detach_raises_network_error ... ok ironic.tests.unit.drivers.modules.redfish.test_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.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.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.conductor.test_manager.VifTestCase.test_vif_list ironic.tests.unit.conductor.test_manager.VifTestCase.test_vif_list ... 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_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.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_cap ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_boot_device_persistency ... ok ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_version_capped ... 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.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync ironic.tests.unit.conductor.test_rpcapi.ConductorRPCAPITestCase.test_versions_in_sync ... 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.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_add_node_traits ... 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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_can_send_rescue_false ... ok ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-1b14cdeb-0320-490a-848f-4752639c22df X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-3c996130-e508-46df-905e-133e2b98d8e6 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": "fd3676cc-d7b6-4047-8917-eceba1ab5b7d", "created_at": "2024-01-06T13:43:59.141461+00:00", "updated_at": "2024-01-06T13:43:59.148792+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/fd3676cc-d7b6-4047-8917-eceba1ab5b7d", "rel": "self"}, {"href": "http://localhost/allocations/fd3676cc-d7b6-4047-8917-eceba1ab5b7d", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-3c996130-e508-46df-905e-133e2b98d8e6 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": "fd3676cc-d7b6-4047-8917-eceba1ab5b7d", "created_at": "2024-01-06T13:43:59.141461+00:00", "updated_at": "2024-01-06T13:43:59.148792+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/fd3676cc-d7b6-4047-8917-eceba1ab5b7d", "rel": "self"}, {"href": "http://localhost/allocations/fd3676cc-d7b6-4047-8917-eceba1ab5b7d", "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-409aa064-200b-47cf-900a-584282a04067 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": "7571c8e0-d66f-4d09-b36e-dd382bb8f514", "created_at": "2024-01-06T13:43:59.418920+00:00", "updated_at": "2024-01-06T13:43:59.428200+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/7571c8e0-d66f-4d09-b36e-dd382bb8f514", "rel": "self"}, {"href": "http://localhost/allocations/7571c8e0-d66f-4d09-b36e-dd382bb8f514", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-409aa064-200b-47cf-900a-584282a04067 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": "7571c8e0-d66f-4d09-b36e-dd382bb8f514", "created_at": "2024-01-06T13:43:59.418920+00:00", "updated_at": "2024-01-06T13:43:59.428200+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/7571c8e0-d66f-4d09-b36e-dd382bb8f514", "rel": "self"}, {"href": "http://localhost/allocations/7571c8e0-d66f-4d09-b36e-dd382bb8f514", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"}]} API ACL Testing Path get /v1/allocations/0491806a-ee46-4bf8-94b6-3b3258e52e24 GET: /v1/allocations/0491806a-ee46-4bf8-94b6-3b3258e52e24 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-16d13d74-abcd-4b1c-b804-1d0875eac5c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "0491806a-ee46-4bf8-94b6-3b3258e52e24", "created_at": "2024-01-06T13:43:59.966774+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/0491806a-ee46-4bf8-94b6-3b3258e52e24", "rel": "self"}, {"href": "http://localhost/allocations/0491806a-ee46-4bf8-94b6-3b3258e52e24", "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-16d13d74-abcd-4b1c-b804-1d0875eac5c1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "0491806a-ee46-4bf8-94b6-3b3258e52e24", "created_at": "2024-01-06T13:43:59.966774+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/0491806a-ee46-4bf8-94b6-3b3258e52e24", "rel": "self"}, {"href": "http://localhost/allocations/0491806a-ee46-4bf8-94b6-3b3258e52e24", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} API ACL Testing Path get /v1/allocations/5f35ed8b-2580-4171-a1e0-d82164862135 GET: /v1/allocations/5f35ed8b-2580-4171-a1e0-d82164862135 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6fc43dec-1292-4d98-a93f-1de213c5ef40 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5f35ed8b-2580-4171-a1e0-d82164862135", "created_at": "2024-01-06T13:44:00.576225+00:00", "updated_at": "2024-01-06T13:44:00.581805+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/5f35ed8b-2580-4171-a1e0-d82164862135", "rel": "self"}, {"href": "http://localhost/allocations/5f35ed8b-2580-4171-a1e0-d82164862135", "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-6fc43dec-1292-4d98-a93f-1de213c5ef40 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "5f35ed8b-2580-4171-a1e0-d82164862135", "created_at": "2024-01-06T13:44:00.576225+00:00", "updated_at": "2024-01-06T13:44:00.581805+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/5f35ed8b-2580-4171-a1e0-d82164862135", "rel": "self"}, {"href": "http://localhost/allocations/5f35ed8b-2580-4171-a1e0-d82164862135", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} API ACL Testing Path delete /v1/allocations/fd4f343a-5124-4f3b-a87e-a19e6cb9f7de DELETE: /v1/allocations/fd4f343a-5124-4f3b-a87e-a19e6cb9f7de 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.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.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.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.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.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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_clean ... 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.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_continue_node_deploy ... 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.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_allocation ... 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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_create_port ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_create_port ... 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.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_allocation ... ok ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_unknown ironic.tests.unit.drivers.modules.redfish.test_management.RedfishManagementTestCase.test_set_secure_boot_state_boot_mode_unknown ... ok ironic.tests.unit.conductor.test_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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_connector ... 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.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_destroy_volume_target ... 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.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_clean ... 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.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_deploy ... ok ironic.tests.unit.api.test_acl.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.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.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_rpcapi.RPCAPITestCase.test_do_node_rescue ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_rescue ... 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.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.api.test_acl.TestRBACProjectScoped.test_project_scoped_411_owner_member_can_patch_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_411_owner_member_can_patch_allocation ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_do_node_unrescue ... 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.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_driver_vendor_passthru ... 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.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_auto ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_auto ... 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.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_basic ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_basic ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_console_information ... ok GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-964513b9-2542-4afc-a144-29c042adf846 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-964513b9-2542-4afc-a144-29c042adf846 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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/31f8f3d5-feb5-4dad-bb9c-2944437ccdf5 DELETE: /v1/allocations/31f8f3d5-feb5-4dad-bb9c-2944437ccdf5 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d8ea42ca-0e5f-4f78-85b1-68b40dd0f1da X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d8ea42ca-0e5f-4f78-85b1-68b40dd0f1da X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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/ff9ade93-8df3-4cce-8931-44493454057b DELETE: /v1/allocations/ff9ade93-8df3-4cce-8931-44493454057b GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1a2e2179-3092-4334-908f-9bc4c15b8c52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-1a2e2179-3092-4334-908f-9bc4c15b8c52 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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/1fcf04b0-1553-466a-80ef-6c4d2dba611b DELETE: /v1/allocations/1fcf04b0-1553-466a-80ef-6c4d2dba611b GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7c2c19cc-c8a9-4108-8816-66d485f4d08a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-7c2c19cc-c8a9-4108-8816-66d485f4d08a X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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/9f294563-6f2e-4662-8842-8f2424de3cd3 DELETE: /v1/allocations/9f294563-6f2e-4662-8842-8f2424de3cd3 GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c4130cec-ce4d-482d-adca-0713b179c3fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-c4130cec-ce4d-482d-adca-0713b179c3fd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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/075f4118-4dbc-4722-8183-aab7bda5ca0b DELETE: /v1/allocations/075f4118-4dbc-4722-8183-aab7bda5ca0b GOT:Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e038d6ad-5dd9-495a-a85e-228ed01d1079 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-e038d6ad-5dd9-495a-a85e-228ed01d1079 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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/b951834d-9d26-4423-9346-bc5dd5f01c16 PATCH: /v1/allocations/b951834d-9d26-4423-9346-bc5dd5f01c16 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6be7cbfe-19d9-455c-ad37-4388cac9ccc1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "b951834d-9d26-4423-9346-bc5dd5f01c16", "created_at": "2024-01-06T13:44:05.133328+00:00", "updated_at": "2024-01-06T13:44:05.419512+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/b951834d-9d26-4423-9346-bc5dd5f01c16", "rel": "self"}, {"href": "http://localhost/allocations/b951834d-9d26-4423-9346-bc5dd5f01c16", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-6be7cbfe-19d9-455c-ad37-4388cac9ccc1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "b951834d-9d26-4423-9346-bc5dd5f01c16", "created_at": "2024-01-06T13:44:05.133328+00:00", "updated_at": "2024-01-06T13:44:05.419512+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/b951834d-9d26-4423-9346-bc5dd5f01c16", "rel": "self"}, {"href": "http://localhost/allocations/b951834d-9d26-4423-9346-bc5dd5f01c16", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} API ACL Testing Path patch /v1/allocations/c7208ea2-db55-447c-baa0-cbf7ed367230 PATCH: /v1/allocations/c7208ea2-db55-447c-baa0-cbf7ed367230 [{'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.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_session ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_auth_session ... 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.api.test_acl.TestRBACProjectScoped.test_project_scoped_413_third_party_admin_can_get_allocations ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_413_third_party_admin_can_get_allocations ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_driver_vendor_passthru_methods ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_random_topic ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_password ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_password ... ok ironic.tests.unit.conductor.test_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.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.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.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_username ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_new_session_username ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_indicators ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_get_supported_indicators ... 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.TestRBACProjectScoped.test_project_scoped_416_third_party_admin_cannot_create_allocation_with_candidates_not_owned ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_416_third_party_admin_cannot_create_allocation_with_candidates_not_owned ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_session_reuse ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsAuthTestCase.test_ensure_session_reuse ... ok ironic.tests.unit.conductor.test_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.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.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.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.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.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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_heartbeat ... 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_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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inject_nmi ... 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.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_inspect_hardware ... 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.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.conductor.test_rpcapi.RPCAPITestCase.test_local_call ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call ... ok ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsTestCase.test_parse_driver_info_default_scheme_with_port ... ok ironic.tests.unit.drivers.modules.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_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.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.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_call_host_mismatch ... ok GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e973c8b-ae5a-4fab-9ff7-773093e17dd1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "c7208ea2-db55-447c-baa0-cbf7ed367230", "created_at": "2024-01-06T13:44:05.886322+00:00", "updated_at": "2024-01-06T13:44:06.086783+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/c7208ea2-db55-447c-baa0-cbf7ed367230", "rel": "self"}, {"href": "http://localhost/allocations/c7208ea2-db55-447c-baa0-cbf7ed367230", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e973c8b-ae5a-4fab-9ff7-773093e17dd1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "c7208ea2-db55-447c-baa0-cbf7ed367230", "created_at": "2024-01-06T13:44:05.886322+00:00", "updated_at": "2024-01-06T13:44:06.086783+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/c7208ea2-db55-447c-baa0-cbf7ed367230", "rel": "self"}, {"href": "http://localhost/allocations/c7208ea2-db55-447c-baa0-cbf7ed367230", "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-64f4d1f3-257c-4644-8151-b84b7d399c6d X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"allocations": []} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-64f4d1f3-257c-4644-8151-b84b7d399c6d 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 Content-Type: application/json Openstack-Request-Id: req-47adbcce-490d-484b-acf3-6c2254e78e56 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-47adbcce-490d-484b-acf3-6c2254e78e56 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-705c0f43-1270-409f-9c26-95f5d6efa419 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-705c0f43-1270-409f-9c26-95f5d6efa419 X-Openstack-Ironic-Api-Maximum-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 Content-Type: application/json Openstack-Request-Id: req-f5de9778-2fda-4812-b9c3-c386f5a7b3ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881, 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f\", \"debuginfo\": null}"} ACL Test GOT Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-f5de9778-2fda-4812-b9c3-c386f5a7b3ff X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Nodes cannot be found: 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881, 38d5abed-c585-4fce-a57e-a2ffc2a2ec6f\", \"debuginfo\": null}"} 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-feafedee-0ec1-4aac-bdfe-8981ef1809a1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-feafedee-0ec1-4aac-bdfe-8981ef1809a1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b45ade6d-1901-4cbd-964c-02a3877d8b31 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-b45ade6d-1901-4cbd-964c-02a3877d8b31 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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/cdb537d6-aa2a-4f35-aef3-e63cffa665dd GET: /v1/allocations/cdb537d6-aa2a-4f35-aef3-e63cffa665dd {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c02b90a0-eeaa-4891-b921-517df79fe661 X-Openstack-Ironic-Api-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 cdb537d6-aa2a-4f35-aef3-e63cffa665dd could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-c02b90a0-eeaa-4891-b921-517df79fe661 X-Openstack-Ironic-Api-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 cdb537d6-aa2a-4f35-aef3-e63cffa665dd could not be found.\", \"debuginfo\": null}"} ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_420_third_party_admin_cannot_patch_an_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_420_third_party_admin_cannot_patch_an_allocation ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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.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_rpcapi.RPCAPITestCase.test_local_cast ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast ... 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.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_local_cast_error ... ok ironic.tests.unit.api.test_acl.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.conductor.test_rpcapi.RPCAPITestCase.test_object_action ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_object_action ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_423_lessee_reader_can_read_node_allocation ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_423_lessee_reader_can_read_node_allocation ... ok ironic.tests.unit.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.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_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.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.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.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.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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_rpc_disabled ... ok ironic.tests.unit.drivers.modules.redfish.test_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.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__fail_validation ... ok API ACL Testing Path patch /v1/allocations/dbc22ca7-473f-4a5c-b5ec-347bbfacdfc0 PATCH: /v1/allocations/dbc22ca7-473f-4a5c-b5ec-347bbfacdfc0 [{'op': 'replace', 'path': '/extra', 'value': {'test': 'testing'}}] GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1ead9b1e-9efd-4334-8cb1-980b28e1eda4 X-Openstack-Ironic-Api-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 dbc22ca7-473f-4a5c-b5ec-347bbfacdfc0 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1ead9b1e-9efd-4334-8cb1-980b28e1eda4 X-Openstack-Ironic-Api-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 dbc22ca7-473f-4a5c-b5ec-347bbfacdfc0 could not be found.\", \"debuginfo\": null}"} API ACL Testing Path delete /v1/allocations/663cc58a-deaf-41e5-9b8d-b09805cce2b6 DELETE: /v1/allocations/663cc58a-deaf-41e5-9b8d-b09805cce2b6 GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1c4ef289-9ce2-454c-bbba-3821e473360b X-Openstack-Ironic-Api-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 663cc58a-deaf-41e5-9b8d-b09805cce2b6 could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-1c4ef289-9ce2-454c-bbba-3821e473360b X-Openstack-Ironic-Api-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 663cc58a-deaf-41e5-9b8d-b09805cce2b6 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-c0557df8-d5e9-4933-849b-d0a89aad42db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "bf6ee853-8e48-4886-9df4-c3cd6554574c", "created_at": "2024-01-06T13:44:12.268912+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/bf6ee853-8e48-4886-9df4-c3cd6554574c", "rel": "self"}, {"href": "http://localhost/allocations/bf6ee853-8e48-4886-9df4-c3cd6554574c", "rel": "bookmark"}], "node_uuid": "1ab63b9e-66d7-4cd7-8618-dddd0f9f7881"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-c0557df8-d5e9-4933-849b-d0a89aad42db X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "bf6ee853-8e48-4886-9df4-c3cd6554574c", "created_at": "2024-01-06T13:44:12.268912+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/bf6ee853-8e48-4886-9df4-c3cd6554574c", "rel": "self"}, {"href": "http://localhost/allocations/bf6ee853-8e48-4886-9df4-c3cd6554574c", "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-f8550af4-185e-4605-a638-b578fbdacfe0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "da7755a8-3e07-4ba2-89d7-11d4461d7546", "created_at": "2024-01-06T13:44:12.652418+00:00", "updated_at": "2024-01-06T13:44:12.656988+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/da7755a8-3e07-4ba2-89d7-11d4461d7546", "rel": "self"}, {"href": "http://localhost/allocations/da7755a8-3e07-4ba2-89d7-11d4461d7546", "rel": "bookmark"}], "node_uuid": "38d5abed-c585-4fce-a57e-a2ffc2a2ec6f"} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f8550af4-185e-4605-a638-b578fbdacfe0 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "da7755a8-3e07-4ba2-89d7-11d4461d7546", "created_at": "2024-01-06T13:44:12.652418+00:00", "updated_at": "2024-01-06T13:44:12.656988+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/da7755a8-3e07-4ba2-89d7-11d4461d7546", "rel": "self"}, {"href": "http://localhost/allocations/da7755a8-3e07-4ba2-89d7-11d4461d7546", "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-8042320b-a824-4561-ab36-abf76fd153bd X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Resource could not be found.\", \"debuginfo\": null}"} ACL Test GOT Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-8042320b-a824-4561-ab36-abf76fd153bd X-Openstack-Ironic-Api-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-d1a21bcf-dd17-4517-a31a-18d156322256 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-d1a21bcf-dd17-4517-a31a-18d156322256 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-355661df-85e8-4643-898b-acd6aa6dfc25 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-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.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.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test__generate_connector_iscsi ... ok ironic.tests.unit.api.test_acl.TestRBACProjectScoped.test_project_scoped_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.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_boot_device ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_console_mode ... 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.conductor.test_rpcapi.RPCAPITestCase.test_set_indicator_state ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_set_indicator_state ... 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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_update_node ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_node ... 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.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.conductor.test_rpcapi.RPCAPITestCase.test_update_port ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_port ... 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.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.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.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.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_update_volume_target ... 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.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.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.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_fails_without_connectors ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vendor_passthru ... 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.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_attach ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_attach_detach_volumes_no_volumes ... ok ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach ironic.tests.unit.conductor.test_rpcapi.RPCAPITestCase.test_vif_detach ... 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.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.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.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.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.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.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.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.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_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_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.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.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg ironic.tests.unit.conductor.test_task_manager.ExclusiveLockDecoratorTestCase.test_with_shared_lock_task_first_arg ... ok ironic.tests.unit.conductor.test_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 ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-355661df-85e8-4643-898b-acd6aa6dfc25 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-480c82a3-5a4d-4764-a89a-2ca00e3357fa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-480c82a3-5a4d-4764-a89a-2ca00e3357fa X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-2f6378ee-9c5a-4535-afa9-7000e61771d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"Resource temporarily unavailable, please retry.\", \"debuginfo\": null}"} ACL Test GOT Response: 503 Service Unavailable Content-Type: application/json Openstack-Request-Id: req-2f6378ee-9c5a-4535-afa9-7000e61771d3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.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 Content-Type: application/json Openstack-Request-Id: req-99f545e0-4561-462d-a896-7842de2f1424 X-Openstack-Ironic-Api-Maximum-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-99f545e0-4561-462d-a896-7842de2f1424 X-Openstack-Ironic-Api-Maximum-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/deploy_templates GET: /v1/deploy_templates {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8a2731a1-d2a6-42bb-b802-6d1b74b34863 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-8a2731a1-d2a6-42bb-b802-6d1b74b34863 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-0037cf1c-df8d-4501-9836-0fb0c0bf14f5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-0037cf1c-df8d-4501-9836-0fb0c0bf14f5 X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-10306b29-4d2d-4f7b-88c9-590505d81360 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-10306b29-4d2d-4f7b-88c9-590505d81360 X-Openstack-Ironic-Api-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}]} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-d242b5bd-0769-4fb0-8e26-86d245bb2112 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:deploy_template:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-d242b5bd-0769-4fb0-8e26-86d245bb2112 X-Openstack-Ironic-Api-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.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_should_write_image ... ok ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_error_state ... ok ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_no_state_change ... ok ironic.tests.unit.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.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_only_once ... ok ironic.tests.unit.drivers.modules.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.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_resource_released ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable ironic.tests.unit.conductor.test_task_manager.ProvisionNotifyTestCase.test_notify_unstable_to_stable ... ok ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_fails_when_fc_connectors_unequal ... ok ironic.tests.unit.conductor.test_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.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.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.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.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_fsm_raises ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_no_callback_notify ... ok ironic.tests.unit.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.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.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.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.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback ... ok ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler ironic.tests.unit.conductor.test_task_manager.TaskManagerStateModelTestCases.test_process_event_sets_callback_and_error_handler ... ok ironic.tests.unit.conductor.test_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.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.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_connectors_and_boot ... ok ironic.tests.unit.conductor.test_utils.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.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors ironic.tests.unit.drivers.modules.storage.test_cinder.CinderInterfaceTestCase.test_validate_success_fc_connectors ... ok ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_wipe_deploy_internal_info ironic.tests.unit.conductor.test_utils.AgentTokenUtilsTestCase.test_wipe_deploy_internal_info ... 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.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_cleaning ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_cleaning ... ok ironic.tests.unit.drivers.modules.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.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.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.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.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_provisioning ironic.tests.unit.conductor.test_utils.GetAttachedVifTestCase.test_get_attached_vif_provisioning ... ok GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5d12078c-ec5b-4358-9a32-f61d1f1823b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-5d12078c-ec5b-4358-9a32-f61d1f1823b1 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis GET: /v1/chassis {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-552e55df-18aa-4917-8982-fff42045ed1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-552e55df-18aa-4917-8982-fff42045ed1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} API ACL Testing Path get /v1/chassis GET: /v1/chassis {} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4d420c26-ac31-40d6-b279-08d5468e8528 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:get\\\": \\\"role:reader and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-4d420c26-ac31-40d6-b279-08d5468e8528 X-Openstack-Ironic-Api-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 post /v1/chassis POST: /v1/chassis {'description': 'test-chassis'} GOT:Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-7b51acc6-e3f9-4c27-85af-25ec76dae1ea X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Server\", \"faultstring\": \"\\\"baremetal:chassis:create\\\": \\\"role:admin and system_scope:all\\\" requires a scope of ['system'], request was made with project scope.\", \"debuginfo\": null}"} ACL Test GOT Response: 500 Internal Server Error Content-Type: application/json Openstack-Request-Id: req-7b51acc6-e3f9-4c27-85af-25ec76dae1ea X-Openstack-Ironic-Api-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 Content-Type: application/json Openstack-Request-Id: req-8e81e5c2-d667-4655-b284-818ce20e5a23 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": "81ec1fa0-ab00-49e5-9a79-506c8cc6e8d6", "created_at": "2024-01-06T13:44:21.335047+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/81ec1fa0-ab00-49e5-9a79-506c8cc6e8d6", "rel": "self"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-8e81e5c2-d667-4655-b284-818ce20e5a23 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": "81ec1fa0-ab00-49e5-9a79-506c8cc6e8d6", "created_at": "2024-01-06T13:44:21.335047+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/81ec1fa0-ab00-49e5-9a79-506c8cc6e8d6", "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-96f69554-918b-4a97-9504-508590ab3332 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": "07df66c8-b7ff-4ad2-af54-f4275426a427", "created_at": "2024-01-06T13:44:22.076361+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/07df66c8-b7ff-4ad2-af54-f4275426a427", "rel": "self"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-96f69554-918b-4a97-9504-508590ab3332 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": "07df66c8-b7ff-4ad2-af54-f4275426a427", "created_at": "2024-01-06T13:44:22.076361+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/07df66c8-b7ff-4ad2-af54-f4275426a427", "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-e23d20dc-c169-4d05-aec5-1551ae4eb809 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": "b8d4e7f1-6160-4400-a956-b598d8d7d252", "created_at": "2024-01-06T13:44:22.725776+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/b8d4e7f1-6160-4400-a956-b598d8d7d252", "rel": "self"}]}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-e23d20dc-c169-4d05-aec5-1551ae4eb809 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": "b8d4e7f1-6160-4400-a956-b598d8d7d252", "created_at": "2024-01-06T13:44:22.725776+00:00", "severity": "ERROR", "event": "Something is wrong", "links": [{"href": "http://localhost/v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/b8d4e7f1-6160-4400-a956-b598d8d7d252", "rel": "self"}]}]} API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/fa03a392-692c-4582-b67a-8c66c7420f4a GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/fa03a392-692c-4582-b67a-8c66c7420f4a {} 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.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.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.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.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.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.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_clean_steps ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.test_agent.AgentRAIDTestCase.test__create_configuration_final ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final ... ok ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_deploy_steps ... ok ironic.tests.unit.drivers.modules.test_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.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_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.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.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.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_steps_exception ironic.tests.unit.conductor.test_utils.GetNodeNextStepsTestCase.test_get_node_next_steps_exception ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_clean ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__create_configuration_final_registered_clean ... ok ironic.tests.unit.api.test_acl.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.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_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.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.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_agent.AgentRAIDTestCase.test__delete_configuration_final ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final ... ok ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid ironic.tests.unit.conductor.test_utils.NodeSetBootModeTestCase.test_node_set_boot_mode_valid ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test__delete_configuration_final_registered ... 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.conductor.test_utils.StoreAgentCertificateTestCase.test_store_existing ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_existing ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_apply_configuration ironic.tests.unit.drivers.modules.test_agent.AgentRAIDTestCase.test_apply_configuration ... ok GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-fe948338-7a3d-4c95-be2d-5f970f2d7f99 X-Openstack-Ironic-Api-Maximum-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-fe948338-7a3d-4c95-be2d-5f970f2d7f99 X-Openstack-Ironic-Api-Maximum-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/82bdb180-b879-4835-bee1-035964080209 GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/82bdb180-b879-4835-bee1-035964080209 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-88c92421-0255-422c-b5d7-37353dbd3dc3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "82bdb180-b879-4835-bee1-035964080209", "created_at": "2024-01-06T13:44:23.912599+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/82bdb180-b879-4835-bee1-035964080209", "rel": "self"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-88c92421-0255-422c-b5d7-37353dbd3dc3 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "82bdb180-b879-4835-bee1-035964080209", "created_at": "2024-01-06T13:44:23.912599+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/82bdb180-b879-4835-bee1-035964080209", "rel": "self"}]} API ACL Testing Path get /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/dc31a6e4-56f8-46ca-9f9f-fcf7005d49a4 GET: /v1/nodes/1ab63b9e-66d7-4cd7-8618-dddd0f9f7881/history/dc31a6e4-56f8-46ca-9f9f-fcf7005d49a4 {} GOT:Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f41b8e1c-a8f4-4b77-a805-c7f90a8895f5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "dc31a6e4-56f8-46ca-9f9f-fcf7005d49a4", "created_at": "2024-01-06T13:44:24.368088+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/dc31a6e4-56f8-46ca-9f9f-fcf7005d49a4", "rel": "self"}]} ACL Test GOT Response: 200 OK Content-Type: application/json Openstack-Request-Id: req-f41b8e1c-a8f4-4b77-a805-c7f90a8895f5 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"uuid": "dc31a6e4-56f8-46ca-9f9f-fcf7005d49a4", "created_at": "2024-01-06T13:44:24.368088+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/dc31a6e4-56f8-46ca-9f9f-fcf7005d49a4", "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-da4064d2-b081-4f2e-a901-e7f1af989780 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-da4064d2-b081-4f2e-a901-e7f1af989780 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-f9c27a6f-13a0-4e29-b44c-ce61028f0f1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-f9c27a6f-13a0-4e29-b44c-ce61028f0f1e X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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-58e3378d-3e80-448a-958a-6043da02e330 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-58e3378d-3e80-448a-958a-6043da02e330 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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/2b54d489-d335-433c-a3d2-7a2e6f47220d GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/2b54d489-d335-433c-a3d2-7a2e6f47220d {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-79bc66d0-b803-4b1b-b5e3-0d7476c50ecb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-79bc66d0-b803-4b1b-b5e3-0d7476c50ecb X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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/bbdff32a-70cc-466d-a089-e0d946266d1b GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/bbdff32a-70cc-466d-a089-e0d946266d1b {} 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.conductor.test_utils.StoreAgentCertificateTestCase.test_store_new ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_store_new ... 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.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over ironic.tests.unit.conductor.test_utils.StoreAgentCertificateTestCase.test_take_over ... 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.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.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_1_port_portgroup_no_physnet_create_1 ... ok ironic.tests.unit.drivers.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.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.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.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.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.api.test_healthcheck.TestHealthcheckMiddleware.test_disable ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_disable ... 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.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.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_healthcheck.TestHealthcheckMiddleware.test_enable ironic.tests.unit.api.test_healthcheck.TestHealthcheckMiddleware.test_enable ... 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_root.TestRoot.test_get_root ironic.tests.unit.api.test_root.TestRoot.test_get_root ... 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.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.test_root.TestRoot.test_no_html_errors ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors ... ok ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 ironic.tests.unit.api.test_root.TestRoot.test_no_html_errors2 ... ok ironic.tests.unit.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.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 INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. 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.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 INFO [alembic.runtime.migration] Context impl SQLiteImpl. INFO [alembic.runtime.migration] Will assume non-transactional DDL. ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version ironic.tests.unit.cmd.test_dbsync.DbSyncTestCase.test_upgrade_and_version ... ok ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema ... 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.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue ... ok ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_rescue_clean_up ... 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.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.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.common.test_args.ValidateSchemaTest.test_schema_needs_args ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_args ... 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.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.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.common.test_args.ValidateSchemaTest.test_schema_needs_mixed ironic.tests.unit.common.test_args.ValidateSchemaTest.test_schema_needs_mixed ... 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.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.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.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.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.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_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_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.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.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.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.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.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.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.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.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_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.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.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.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.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_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.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue ... 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.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached ironic.tests.unit.common.test_hash_ring.HashRingManagerTestCase.test_hash_ring_manager_uncached ... ok ironic.tests.unit.drivers.modules.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.common.test_image_service.FileImageServiceTestCase.test_download_copy ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy ... ok ironic.tests.unit.conductor.test_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.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_copy_fail ... ok ironic.tests.unit.drivers.modules.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.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.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.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port ironic.tests.unit.drivers.modules.test_agent.AgentRescueTestCase.test_agent_unrescue_with_smartnic_port ... ok ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 ironic.tests.unit.conductor.test_utils.ValidatePortPhysnetTestCase.test_validate_port_physnet_empty_portgroup_create_2 ... ok ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_download_hard_link_fail ... ok ironic.tests.unit.drivers.modules.test_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.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_image_service.FileImageServiceTestCase.test_show ironic.tests.unit.common.test_image_service.FileImageServiceTestCase.test_show ... 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.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_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.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.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_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.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.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.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_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_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_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.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test__post_step_reboot_fail ... ok ironic.tests.unit.conductor.test_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.TestUpdateNeutronPort.test_update_neutron_port ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port ... 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.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_client ironic.tests.unit.common.test_neutron.TestUpdateNeutronPort.test_update_neutron_port_with_client ... ok ironic.tests.unit.conductor.test_utils.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.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_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.common.test_neutron.TestValidateNetwork.test_by_name ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_name ... 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.common.test_neutron.TestValidateNetwork.test_by_uuid ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_by_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.common.test_neutron.TestValidateNetwork.test_duplicate ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_duplicate ... 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.common.test_neutron.TestValidateNetwork.test_failure ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_failure ... 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.common.test_neutron.TestValidateNetwork.test_not_found ironic.tests.unit.common.test_neutron.TestValidateNetwork.test_not_found ... 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.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.common.test_policy.PolicyInCodeTestCase.test_creds_02 ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_02 ... 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.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.common.test_policy.PolicyInCodeTestCase.test_creds_04 ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_04 ... 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.common.test_policy.PolicyInCodeTestCase.test_creds_05 ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_05 ... 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.common.test_policy.PolicyInCodeTestCase.test_creds_06 ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_06 ... 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.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.common.test_policy.PolicyInCodeTestCase.test_creds_08 ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_08 ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_09 ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_09 ... ok ironic.tests.unit.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.common.test_policy.PolicyInCodeTestCase.test_creds_10 ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_10 ... 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.common.test_policy.PolicyInCodeTestCase.test_creds_11 ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_11 ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_12 ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_12 ... ok ironic.tests.unit.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.common.test_policy.PolicyInCodeTestCase.test_creds_13 ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_13 ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_14 ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_14 ... ok ironic.tests.unit.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.common.test_policy.PolicyInCodeTestCase.test_creds_15 ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_15 ... ok ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_16 ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_16 ... ok ironic.tests.unit.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.common.test_policy.PolicyInCodeTestCase.test_creds_17 ironic.tests.unit.common.test_policy.PolicyInCodeTestCase.test_creds_17 ... ok ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_exception_uefi ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_configure_local_boot_on_software_raid_exception_uefi ... ok ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env ironic.tests.unit.common.test_pxe_utils.CleanUpPxeEnvTestCase.test__clean_up_pxe_env ... 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.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.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_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.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_contains_all_db_objects ... ok ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_current_object_versions ... ok ironic.tests.unit.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.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.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.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_object_versions ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_object_versions ... ok ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_release_versions ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_no_gaps_in_release_versions ... ok ironic.tests.unit.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.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_object_names_are_registered ... ok ironic.tests.unit.drivers.modules.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.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.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.common.test_release_mappings.ReleaseMappingsTestCase.test_structure ironic.tests.unit.common.test_release_mappings.ReleaseMappingsTestCase.test_structure ... 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.common.test_rpc.TestRequestContextSerializer.test_deserialize_context ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_context ... 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.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_deserialize_entity ... 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.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_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.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.common.test_rpc.TestRequestContextSerializer.test_serialize_context ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_context ... 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.common.test_rpc.TestRequestContextSerializer.test_serialize_entity ironic.tests.unit.common.test_rpc.TestRequestContextSerializer.test_serialize_entity ... 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_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.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.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.common.test_utils.BareMetalUtilsTestCase.test_create_link ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link ... 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.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.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST ironic.tests.unit.common.test_utils.BareMetalUtilsTestCase.test_create_link_EEXIST ... 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.common.test_utils.JinjaTemplatingTestCase.test_render_file ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_file ... 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.common.test_utils.JinjaTemplatingTestCase.test_render_string ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_string ... 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.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.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.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes ironic.tests.unit.common.test_utils.JinjaTemplatingTestCase.test_render_with_quotes ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_create ... 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.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.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.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_utils.TempFilesTestCase.test__check_dir_writable_ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test__check_dir_writable_ok ... 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.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_free_space_raises ... ok ironic.tests.unit.drivers.modules.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.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.db.test_allocations.AllocationsTestCase.test_destroy_allocation ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_destroy_allocation ... 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.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in ironic.tests.unit.common.test_utils.TempFilesTestCase.test_check_dir_with_pass_in ... ok ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_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.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.common.test_utils.TempFilesTestCase.test_is_memory_insufficient ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient ... 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.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_good ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_good ... ok ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_action_oob_power_off_failed ironic.tests.unit.drivers.modules.test_agent_base.AgentDeployMixinTest.test_tear_down_agent_power_action_oob_power_off_failed ... ok ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_recovers ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_recovers ... 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_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only ironic.tests.unit.common.test_utils.TempFilesTestCase.test_is_memory_insufficient_warning_only ... ok ironic.tests.unit.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_utils.TempFilesTestCase.test_tempdir ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir ... 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.common.test_utils.TempFilesTestCase.test_tempdir_mocked ironic.tests.unit.common.test_utils.TempFilesTestCase.test_tempdir_mocked ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_id_that_does_not_exist ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_name ... 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.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.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.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.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.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_by_uuid_that_does_not_exist ... ok ironic.tests.unit.conductor.test_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.db.test_allocations.AllocationsTestCase.test_get_allocation_list ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_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.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_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_conductor_affinity ... ok ironic.tests.unit.drivers.modules.test_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_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_filter_by_node ... ok ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles ... 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_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.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.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.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_automated_clean_version_mismatch ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_automated_clean_version_mismatch ... ok ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_failed ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_invalid_fields ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_get_allocation_list_sorted ... 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.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_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.db.test_allocations.AllocationsTestCase.test_take_over_conflict ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_conflict ... 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_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.db.test_allocations.AllocationsTestCase.test_take_over_success ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_take_over_success ... 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.db.test_allocations.AllocationsTestCase.test_update_allocation ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_associated_with_another_node ... ok ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_no_step_running ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_no_step_running ... ok ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found ironic.tests.unit.conductor.test_base_manager.StartConsolesTestCase.test__start_consoles_node_not_found ... ok ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name ironic.tests.unit.db.test_allocations.AllocationsTestCase.test_update_allocation_duplicated_name ... 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.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.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_base_manager.StartStopTestCase.test_conductor_shutdown_flag ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_conductor_shutdown_flag ... 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.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_reboot ironic.tests.unit.drivers.modules.test_agent_base.ContinueCleaningTest.test_continue_cleaning_reboot ... ok ironic.tests.unit.conductor.test_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.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.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.test_chassis.DbChassisTestCase.test_destroy_chassis ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis ... ok ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_destroy_chassis_that_does_not_exist ... ok ironic.tests.unit.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.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_chassis.DbChassisTestCase.test_get_chassis_by_id ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_id ... ok ironic.tests.unit.conductor.test_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.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_get_chassis_by_uuid ... ok ironic.tests.unit.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.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_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.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.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_prevent_double_start ... ok ironic.tests.unit.drivers.modules.test_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.db.test_chassis.DbChassisTestCase.test_update_chassis ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis ... 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.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.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid ironic.tests.unit.db.test_chassis.DbChassisTestCase.test_update_chassis_uuid ... ok ironic.tests.unit.conductor.test_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.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.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.conductor.test_base_manager.StartStopTestCase.test_start_dbapi_single_call ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_dbapi_single_call ... ok ironic.tests.unit.drivers.modules.test_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_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_create_portgroup_duplicated_name ... 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.TestRefreshCleanSteps.test_refresh_steps_deploy ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_deploy ... 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_base_manager.StartStopTestCase.test_start_fails_hw_type_register ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_fails_hw_type_register ... ok ironic.tests.unit.drivers.modules.test_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.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_destroy_portgroup ... 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_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.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.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_steps ironic.tests.unit.drivers.modules.test_agent_base.TestRefreshCleanSteps.test_refresh_steps_missing_steps ... ok ironic.tests.unit.drivers.modules.test_agent_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.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.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.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.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_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.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_address_that_does_not_exist ... ok ironic.tests.unit.drivers.modules.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.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.drivers.modules.test_agent_power.AgentPowerTest.test_basics ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_basics ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_id_that_does_not_exist ... ok ironic.tests.unit.drivers.modules.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.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_base_manager.StartStopTestCase.test_start_recover_nodes_stuck ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_recover_nodes_stuck ... ok ironic.tests.unit.drivers.modules.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.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_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid ... ok ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_reboot ... 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.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_by_uuid_that_does_not_exist ... ok ironic.tests.unit.drivers.modules.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.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.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.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroup_list_sorted ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id ... ok ironic.tests.unit.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.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_get_portgroups_by_node_id_that_does_not_exist ... ok ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate ... ok ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup ... ok ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails ironic.tests.unit.drivers.modules.test_agent_power.AgentPowerTest.test_validate_fails ... 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.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.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.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.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found ironic.tests.unit.db.test_portgroups.DbportgroupTestCase.test_update_portgroup_not_found ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_start_with_mdns_and_debug ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw ironic.tests.unit.drivers.modules.test_deploy_utils.AgentMethodsTestCase.test_direct_deploy_should_convert_raw_image_no_force_raw ... ok ironic.tests.unit.drivers.modules.test_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.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.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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_create_volume_connector_duplicated_type_connector_id ... ok ironic.tests.unit.drivers.modules.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.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_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_destroy_volume_connector ... ok ironic.tests.unit.drivers.modules.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.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.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_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_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.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.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.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_base_manager.StartStopTestCase.test_stop_uninitialized_conductor ironic.tests.unit.conductor.test_base_manager.StartStopTestCase.test_stop_uninitialized_conductor ... ok ironic.tests.unit.drivers.modules.test_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.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_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_get_volume_connectors_by_node_id ... ok ironic.tests.unit.drivers.modules.test_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.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.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.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.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.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_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.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.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id ironic.tests.unit.db.test_volume_connectors.DbVolumeConnectorTestCase.test_update_volume_connector_fails_invalid_id ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail ironic.tests.unit.conductor.test_cleaning.DoNodeCleanAbortTestCase.test__do_node_clean_abort_tear_down_fail ... ok ironic.tests.unit.drivers.modules.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.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.InstanceInfoTestCase.test_parse_instance_info_configdrive ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_configdrive ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_create_volume_target_duplicated_uuid ... ok ironic.tests.unit.drivers.modules.test_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.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.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.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.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.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive ... 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.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_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift ... 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.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.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_invalid_root_gb ... ok ironic.tests.unit.db.test_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.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout ironic.tests.unit.conductor.test_deployments.StoreConfigDriveTestCase.test_store_configdrive_swift_no_deploy_timeout ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_target_list_sorted ... ok ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_get_volume_targets_by_node_id ... ok ironic.tests.unit.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.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.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector ... ok ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked ironic.tests.unit.conductor.test_manager.DestroyVolumeConnectorTestCase.test_destroy_volume_connector_node_locked ... ok ironic.tests.unit.conductor.test_manager.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.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.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.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover ... 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.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.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_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.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_anaconda ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_nonglance_image_anaconda ... ok ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_enabled ... 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.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_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.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id ironic.tests.unit.db.test_volume_targets.DbVolumeTargetTestCase.test_update_volume_target_fails_invalid_id ... ok ironic.tests.unit.drivers.modules.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_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.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_exception ... ok ironic.tests.unit.drivers.modules.test_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_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceInfoTestCase.test_parse_instance_info_valid_preserve_ephemeral_false ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_port_cleaned ironic.tests.unit.conductor.test_manager.DoNodeTakeOverTestCase.test__do_takeover_with_console_port_cleaned ... ok ironic.tests.unit.drivers.modules.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_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.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_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.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_get_ip_addresses ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_ipxe_iscsi_boot ... ok ironic.tests.unit.drivers.modules.test_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.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp ironic.tests.unit.dhcp.test_dnsmasq.TestDnsmasqDHCPApi.test_update_dhcp ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_elilo_config_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image ironic.tests.unit.drivers.modules.test_deploy_utils.SwitchPxeConfigTestCase.test_switch_uefi_grub_config_whole_disk_image ... ok ironic.tests.unit.drivers.modules.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.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.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_bios ... ok ironic.tests.unit.drivers.modules.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_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi ironic.tests.unit.drivers.modules.test_deploy_utils.TrySetBootDeviceTestCase.test_try_set_boot_device_ipmifailure_uefi ... ok ironic.tests.unit.drivers.modules.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_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.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.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.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_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.drac.test_management.DracManagementTestCase.test_clear_job_queue ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_clear_job_queue ... ok ironic.tests.unit.drivers.modules.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.drac.test_management.DracManagementTestCase.test_get_boot_device ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_boot_device ... ok ironic.tests.unit.drivers.modules.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.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.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.drac.test_management.DracManagementTestCase.test_get_properties ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_get_properties ... 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.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.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.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.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.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.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_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.drac.test_management.DracManagementTestCase.test_reset_idrac ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_reset_idrac ... 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.drac.test_management.DracManagementTestCase.test_set_boot_device ironic.tests.unit.drivers.modules.drac.test_management.DracManagementTestCase.test_set_boot_device ... ok ironic.tests.unit.conductor.test_manager.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.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.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.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.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_image_cache.CleanupImageCacheTestCase.test_one_clean_up ironic.tests.unit.drivers.modules.test_image_cache.CleanupImageCacheTestCase.test_one_clean_up ... 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.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_inspector.InspectHardwareTestCase.test_managed_custom_params ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_custom_params ... 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.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.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.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.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_with_allocation ... ok ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_fast_track ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_fast_track ... ok ironic.tests.unit.drivers.modules.test_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.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_inspector.InspectHardwareTestCase.test_managed_ok ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_managed_ok ... 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_inspector.InspectHardwareTestCase.test_unmanaged_error ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_unmanaged_error ... 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.drac.test_power.DracPowerTestCase.test_reboot_retries_success ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_reboot_retries_success ... ok ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_validate_ok ironic.tests.unit.drivers.modules.test_inspector.InspectHardwareTestCase.test_validate_ok ... ok ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_console_raises_error ... ok ironic.tests.unit.drivers.modules.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.test_ipmitool.IPMIToolShellinaboxTestCase.test__exec_stop_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__exec_stop_console ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__get_ipmi_cmd ... ok ironic.tests.unit.conductor.test_manager.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_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.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.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.IPMIToolShellinaboxTestCase.test__start_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test__start_console ... 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.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_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.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.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_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test_do_node_tear_down_protected ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate ... 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.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.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.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_console_validate_wrong_ipmi_protocol_version ... ok ironic.tests.unit.conductor.test_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_ipmitool.IPMIToolShellinaboxTestCase.test_get_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_get_console ... 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.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.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.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.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console ... 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.IPMIToolShellinaboxTestCase.test_stop_console_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolShellinaboxTestCase.test_stop_console_fail ... 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.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.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.test_pxe.PXEValidateRescueTestCase.test_validate_rescue ironic.tests.unit.drivers.modules.test_pxe.PXEValidateRescueTestCase.test_validate_rescue ... ok ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_fail ... ok ironic.tests.unit.conductor.test_manager.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_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.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.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_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitch ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_masterswitchplus ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_apc_rackpdu ... ok ironic.tests.unit.conductor.test_manager.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_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_aten ... ok ironic.tests.unit.drivers.modules.test_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_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_default ... ok ironic.tests.unit.conductor.test_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.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_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.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.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_driver ... ok ironic.tests.unit.conductor.test_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.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_outlet ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_invalid_version ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_address ... ok ironic.tests.unit.conductor.test_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.drac.test_power.DracPowerTestCase.test_set_power_state_timeout ironic.tests.unit.drivers.modules.drac.test_power.DracPowerTestCase.test_set_power_state_timeout ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v1 ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_community_snmp_v2c ... ok ironic.tests.unit.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.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.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.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_outlet ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_missing_user ... ok ironic.tests.unit.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.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.conductor.test_manager.MiscTestCase.test_iter_nodes ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes ... 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.drac.test_raid.DracRaidInterfaceTestCase.test_apply_configuration ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_apply_configuration ... ok ironic.tests.unit.drivers.modules.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.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown ironic.tests.unit.conductor.test_manager.MiscTestCase.test_iter_nodes_shutdown ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry3 ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_servertech_sentry3 ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_delete_existing ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_delete_existing ... ok ironic.tests.unit.drivers.modules.test_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.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.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.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_disk_already_reserved ... ok ironic.tests.unit.drivers.modules.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.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.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.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_fails_if_not_enough_space ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v2c ... ok ironic.tests.unit.conductor.test_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.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.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.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.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_badproto ... ok ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces ironic.tests.unit.conductor.test_manager.MiscTestCase.test_validate_dynamic_driver_interfaces ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_default_proto ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_clean ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_clean ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_key_proto ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_auth_nokey ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_add_node_traits ... 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.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_deploy ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_in_deploy ... ok ironic.tests.unit.drivers.modules.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.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_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_engine_id ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_context_name ... ok ironic.tests.unit.drivers.modules.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_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_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_badproto ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_default_proto ... ok ironic.tests.unit.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.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.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.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_max_size_and_share_physical_disks ... ok ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits ironic.tests.unit.conductor.test_manager.NodeTraitsTestCase.test_remove_node_traits ... 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.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.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.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_nokey ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key ironic.tests.unit.drivers.modules.test_snmp.SNMPValidateParametersTestCase.test__parse_driver_info_snmp_v3_priv_short_key ... ok ironic.tests.unit.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.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.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.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_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_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.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_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.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.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.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.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.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_10 ... ok ironic.tests.unit.drivers.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.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup ... 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.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_level ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_nested_raid_level ... ok ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_default_interfaces ... 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.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_association_with_ports ... 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.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_cinder_storage ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks ironic.tests.unit.drivers.modules.drac.test_raid.DracRaidInterfaceTestCase.test_create_configuration_with_share_physical_disks ... ok ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_noop_mgmt ... ok ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox ironic.tests.unit.drivers.test_ipmi.IPMIHardwareTestCase.test_override_with_shellinabox ... 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.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.objects.test_bios.TestBIOSSettingObject.test_create ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_create ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_delete ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_get ... 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.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.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_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked ironic.tests.unit.conductor.test_manager.UpdatePortgroupTestCase.test_update_portgroup_node_locked ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_create ... ok ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_delete ... 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.objects.test_bios.TestBIOSSettingObject.test_list_save ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_list_save ... 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_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.objects.test_bios.TestBIOSSettingObject.test_save ironic.tests.unit.objects.test_bios.TestBIOSSettingObject.test_save ... 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.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_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.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.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.objects.test_conductor.TestConductorObject.test_list ironic.tests.unit.objects.test_conductor.TestConductorObject.test_list ... 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.objects.test_conductor.TestConductorObject.test_load ironic.tests.unit.objects.test_conductor.TestConductorObject.test_load ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh ironic.tests.unit.objects.test_conductor.TestConductorObject.test_refresh ... ok ironic.tests.unit.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.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.objects.test_conductor.TestConductorObject.test_register ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register ... 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.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_hardware_interfaces ... 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.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.objects.test_conductor.TestConductorObject.test_register_into_group ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_uppercased ... ok ironic.tests.unit.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.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.objects.test_conductor.TestConductorObject.test_register_into_group_with_update ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_into_group_with_update ... ok ironic.tests.unit.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.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.objects.test_conductor.TestConductorObject.test_register_update_existing_true ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_update_existing_true ... ok ironic.tests.unit.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.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_conductor.TestConductorObject.test_register_with_invalid_group ironic.tests.unit.objects.test_conductor.TestConductorObject.test_register_with_invalid_group ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save ironic.tests.unit.objects.test_conductor.TestConductorObject.test_save ... ok ironic.tests.unit.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.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_failed ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_create_configuration_failed ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch ironic.tests.unit.objects.test_conductor.TestConductorObject.test_touch ... ok ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister ironic.tests.unit.objects.test_conductor.TestConductorObject.test_unregister ... ok ironic.tests.unit.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.UpdateVolumeTargetTestCase.test_update_volume_target ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target ... 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_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.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.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.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.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked ironic.tests.unit.conductor.test_manager.UpdateVolumeTargetTestCase.test_update_volume_target_node_locked ... 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.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.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.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.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string ironic.tests.unit.objects.test_fields.TestStringFieldThatAcceptsCallable.test_coerce_string ... 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.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.objects.test_objects.TestMisc.test_max_version ironic.tests.unit.objects.test_objects.TestMisc.test_max_version ... 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.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.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.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.objects.test_objects.TestMisc.test_max_version_two ironic.tests.unit.objects.test_objects.TestMisc.test_max_version_two ... 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.ibmc.test_raid.IbmcRAIDTestCase.test_sync_delete_configuration_success ironic.tests.unit.drivers.modules.ibmc.test_raid.IbmcRAIDTestCase.test_sync_delete_configuration_success ... ok ironic.tests.unit.objects.test_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.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.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.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.objects.test_objects.TestObject.test_as_dict ironic.tests.unit.objects.test_objects.TestObject.test_as_dict ... 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.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.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.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.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_invalid_parameter_value ... ok ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat ironic.tests.unit.objects.test_objects.TestObject.test_assign_value_without_DictCompat ... ok ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes ironic.tests.unit.objects.test_objects.TestObject.test_base_attributes ... ok ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 ironic.tests.unit.objects.test_objects.TestObject.test_changed_1 ... ok ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok ironic.tests.unit.conductor.test_steps.GetValidatedStepsFromTemplatesTestCase.test_ok ... 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.objects.test_objects.TestObject.test_changed_3 ironic.tests.unit.objects.test_objects.TestObject.test_changed_3 ... 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.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.objects.test_objects.TestObject.test_changed_4 ironic.tests.unit.objects.test_objects.TestObject.test_changed_4 ... 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.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_boot.IloPXEBootTestCase.test_prepare_instance ironic.tests.unit.drivers.modules.ilo.test_boot.IloPXEBootTestCase.test_prepare_instance ... ok ironic.tests.unit.objects.test_objects.TestObject.test_contains ironic.tests.unit.objects.test_objects.TestObject.test_contains ... ok ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_new ... ok ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_only_enabled ... ok ironic.tests.unit.drivers.modules.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.objects.test_objects.TestObject.test_convert_to_version_old ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old ... ok ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_old_keep ... ok ironic.tests.unit.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.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.objects.test_objects.TestObject.test_convert_to_version_same ironic.tests.unit.objects.test_objects.TestObject.test_convert_to_version_same ... ok ironic.tests.unit.objects.test_objects.TestObject.test_dehydration ironic.tests.unit.objects.test_objects.TestObject.test_dehydration ... ok ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_disable ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__get_cleaning_steps_priority_override_disable ... ok ironic.tests.unit.drivers.modules.ilo.test_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.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.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.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.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_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_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.objects.test_objects.TestObject.test_get ironic.tests.unit.objects.test_objects.TestObject.test_get ... 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.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.objects.test_objects.TestObject.test_get_changes_pinned ironic.tests.unit.objects.test_objects.TestObject.test_get_changes_pinned ... 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.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.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.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.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.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.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_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.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.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.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.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.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.objects.test_objects.TestObject.test_hydration ironic.tests.unit.objects.test_objects.TestObject.test_hydration ... ok ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_invalid_arg ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_rescue_mode ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test__parse_driver_info_rescue_mode ... ok ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ironic.tests.unit.objects.test_objects.TestObject.test_hydration_bad_ns ... 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.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.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.objects.test_objects.TestObject.test_load ironic.tests.unit.objects.test_objects.TestObject.test_load ... ok ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base ironic.tests.unit.objects.test_objects.TestObject.test_load_in_base ... ok ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive ironic.tests.unit.objects.test_objects.TestObject.test_loaded_in_primitive ... ok ironic.tests.unit.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.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.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.objects.test_objects.TestObject.test_obj_constructor ironic.tests.unit.objects.test_objects.TestObject.test_obj_constructor ... ok ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields ironic.tests.unit.objects.test_objects.TestObject.test_obj_fields ... ok ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance ironic.tests.unit.objects.test_objects.TestObject.test_object_inheritance ... ok ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test__validate_user_clean_steps_not_supported ... ok ironic.tests.unit.drivers.modules.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.objects.test_objects.TestObject.test_object_property ironic.tests.unit.objects.test_objects.TestObject.test_object_property ... 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.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.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated ironic.tests.unit.conductor.test_steps.NodeCleaningStepsTestCase.test_set_node_cleaning_steps_automated ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_instance ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_instance ... ok ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object ironic.tests.unit.objects.test_objects.TestObject.test_orphaned_object ... 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.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.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.IloUefiHttpsBootTestCase.test_clean_up_ramdisk ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_clean_up_ramdisk ... 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.objects.test_objects.TestObject.test_supports_version ironic.tests.unit.objects.test_objects.TestObject.test_supports_version ... 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.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_boot.IloUefiHttpsBootTestCase.test_prepare_instance_boot_ramdisk ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_instance_boot_ramdisk ... ok ironic.tests.unit.conductor.test_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_objects.TestObject.test_updates ironic.tests.unit.objects.test_objects.TestObject.test_updates ... ok ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error ironic.tests.unit.conductor.test_task_manager.ThreadExceptionTestCase.test_set_node_last_error_no_error ... ok ironic.tests.unit.drivers.modules.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.objects.test_objects.TestObject.test_with_alternate_context ironic.tests.unit.objects.test_objects.TestObject.test_with_alternate_context ... 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.objects.test_volume_target.TestVolumeTargetObject.test_create ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_create ... 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.objects.test_volume_target.TestVolumeTargetObject.test_destroy ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_destroy ... 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.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_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.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.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.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.objects.test_volume_target.TestVolumeTargetObject.test_list ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list ... 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.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.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.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_by_volume_id ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_middle_of_clean_step ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_middle_of_clean_step ... ok ironic.tests.unit.conductor.test_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.objects.test_volume_target.TestVolumeTargetObject.test_list_none ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_list_none ... 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.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.objects.test_volume_target.TestVolumeTargetObject.test_refresh ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_refresh ... 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.objects.test_volume_target.TestVolumeTargetObject.test_save ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save ... 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.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.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh ironic.tests.unit.objects.test_volume_target.TestVolumeTargetObject.test_save_after_refresh ... ok GET: / {} GOT:Response: 400 Bad Request Content-Type: application/json Openstack-Request-Id: req-82adb5e7-beef-421e-bec0-5b5ee8c6dcc3 {"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-5c3befcc-bc41-458c-b014-2aa10f9980a7 {"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-751fb5d0-95b1-4fdb-9474-0fdddc48c912 {"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-7e0f3033-5b24-4fe5-b177-651f31db3fba {"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-6b5cf99d-66a5-4082-8fa6-2bb1630a67e7 {"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-04f5ef4d-e607-4754-ac90-9fbb32ec2303 {"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-ea4e8ee8-0db8-40ad-9221-bd3d017e971e {"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-34681bad-a530-47a4-9458-ee240a54f1d8 {"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.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_glance_image ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_prepare_ramdisk_rescue_glance_image ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_failed_getting_state_notify ... ok ironic.tests.unit.drivers.modules.ilo.test_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.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_in_same_state ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate ... 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.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_bios ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_inspection ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_invalid_state ... ok ironic.tests.unit.drivers.modules.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_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_glance ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_glance ... ok ironic.tests.unit.conductor.test_utils.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.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver ... ok ironic.tests.unit.conductor.test_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_utils.NodePowerActionTestCase.test_node_power_action_power_off_pregenerated_token ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_pregenerated_token ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver_exc ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_ramdisk_deploy_webserver_exc ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_off_storage_detach ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_power_on ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue_no_rescue_ramdisk ironic.tests.unit.drivers.modules.ilo.test_boot.IloUefiHttpsBootTestCase.test_validate_rescue_no_rescue_ramdisk ... ok /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b"" is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_get_properties ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.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 " /usr/lib/python3/dist-packages/oslo_versionedobjects/fields.py:367: FutureWarning: b'""' is an invalid UUID. Using UUIDFields with invalid UUIDs is no longer supported, and will be removed in a future release. Please update your code to input valid UUIDs or accept ValueErrors for invalid UUIDs. See https://docs.openstack.org/oslo.versionedobjects/latest/reference/fields.html#oslo_versionedobjects.fields.UUIDField for further details warnings.warn("%s is an invalid UUID. Using UUIDFields " ironic.tests.unit.conductor.test_utils.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.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.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.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.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.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.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_no_timeout ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.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.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_reboot_storage_attach ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.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.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.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_inspect.IloInspectTestCase.test_inspect_ok_gen8 ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_inspect_ok_gen8 ... ok ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify ironic.tests.unit.conductor.test_utils.NodePowerActionTestCase.test_node_power_action_set_power_failure_notify ... ok ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate ironic.tests.unit.drivers.modules.ilo.test_inspect.IloInspectTestCase.test_validate ... 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_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.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.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.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_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.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_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.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.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_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.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_empty_db ... 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.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.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.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_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.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.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.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.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.db.test_api.UpdateToLatestVersionsTestCase.test_one_node ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_one_node ... 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.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists ironic.tests.unit.db.test_api.UpdateToLatestVersionsTestCase.test_version_exists ... 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.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.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_create_bios_setting_list_duplicate ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_delete_bios_setting_list_node_not_exist ... ok ironic.tests.unit.db.test_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.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.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.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.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.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.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_get_bios_setting_list_node_not_exist ... ok ironic.tests.unit.db.test_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.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.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.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.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.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.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.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.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist ironic.tests.unit.db.test_bios_settings.DbBIOSSettingTestCase.test_update_bios_setting_list_setting_not_exist ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_at_limit ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_duplicate ... ok ironic.tests.unit.drivers.modules.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.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.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.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_add_node_trait_node_not_exist ... ok ironic.tests.unit.drivers.modules.ilo.test_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_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 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.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.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.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_vendor.VendorPassthruTestCase.test_boot_into_iso ironic.tests.unit.drivers.modules.ilo.test_vendor.VendorPassthruTestCase.test_boot_into_iso ... ok ironic.tests.unit.db.test_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.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_delete_node_trait_not_found ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_by_node_id ... ok ironic.tests.unit.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.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_get_node_traits_empty ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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.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.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.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_at_limit ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_duplicate ... ok ironic.tests.unit.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.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_node_not_exist ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_set_node_traits_over_limit ... ok ironic.tests.unit.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.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.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.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits ... ok ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist ironic.tests.unit.db.test_node_traits.DbNodeTraitTestCase.test_unset_node_traits_node_not_exist ... ok ironic.tests.unit.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.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.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.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.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.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.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_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.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.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.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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk ... 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.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.db.test_ports.DbPortTestCase.test_get_port_list ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list ... 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.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_project ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_port_list_filter_by_node_project ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_bios ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_bios ... 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_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.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.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_node_id_filter_by_node_owner ... ok ironic.tests.unit.db.test_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.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.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_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.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.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.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.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_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.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.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.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.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.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.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.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist ironic.tests.unit.db.test_ports.DbPortTestCase.test_get_ports_by_portgroup_id_that_does_not_exist ... ok ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_prepare_ramdisk_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.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.db.test_ports.DbPortTestCase.test_update_port_uuid ironic.tests.unit.db.test_ports.DbPortTestCase.test_update_port_uuid ... 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.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.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.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.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.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.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.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.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.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.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.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.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_ip_addresses_ports_int_info ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_inspection ... ok ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_tenant ... 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.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception ironic.tests.unit.dhcp.test_neutron.TestNeutron.test__get_port_ip_address_with_exception ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCPXEBootBasicTestCase.test_validate_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.dhcp.test_neutron.TestNeutron.test_get_ip_addresses ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_get_ip_addresses ... ok ironic.tests.unit.drivers.modules.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.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.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.dhcp.test_neutron.TestNeutron.test_update_dhcp ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp ... 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.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_fails ... 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.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.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_dhcp_set_sleep_and_fake ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__cleanup_boot_from_volume ... 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.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.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.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.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.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v4_and_v6 ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v4_and_v6 ... ok ironic.tests.unit.drivers.modules.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.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v6 ironic.tests.unit.dhcp.test_neutron.TestNeutron.test_update_port_dhcp_opts_v6 ... ok ironic.tests.unit.drivers.modules.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.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.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.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_iscsi_no_portal_port ... ok ironic.tests.unit.drivers.modules.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.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test__configure_boot_from_volume_multi_lan_ports ... ok ironic.tests.unit.drivers.modules.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.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.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.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_clean_up_instance_error ... ok ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_with_reboot ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_commit_config_with_reboot ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_instance ... 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_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_prepare_ramdisk_skip ... ok ironic.tests.unit.drivers.modules.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.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.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config ironic.tests.unit.drivers.modules.drac.test_bios.DracBIOSConfigurationTestCase.test_set_config ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi ... ok ironic.tests.unit.drivers.modules.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.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus ... ok ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus_without_ht_enabled ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__calculate_cpus_without_ht_enabled ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_invalid_netmask ... ok ironic.tests.unit.drivers.modules.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_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.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.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_BIOS_boot_mode ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test__get_pxe_dev_nics_with_BIOS_boot_mode ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootWithVolumeTestCase.test_validate_iscsi_connector_no_iqn ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware ... ok ironic.tests.unit.drivers.modules.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.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.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_multiple_supported_gpu ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_multiple_supported_gpu ... ok ironic.tests.unit.drivers.modules.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.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.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.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_false ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true ironic.tests.unit.drivers.modules.irmc.test_boot.IsImageHrefOrdinaryFileNameTestCase.test_is_image_href_ordinary_file_name_true ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_get_irmc_client ... ok ironic.tests.unit.drivers.modules.irmc.test_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.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.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.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.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_no_virtual_disk ... ok ironic.tests.unit.drivers.modules.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.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports ironic.tests.unit.drivers.modules.drac.test_inspect.DracInspectionTestCase.test_inspect_hardware_with_existing_ports ... ok ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail ironic.tests.unit.drivers.modules.irmc.test_common.IRMCCommonMethodsTestCase.test_set_secure_boot_mode_fail ... ok ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs ironic.tests.unit.drivers.modules.drac.test_job.DracVendorPassthruJobTestCase.test_list_unfinished_jobs ... ok ironic.tests.unit.drivers.modules.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.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.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_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.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.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.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_uefi ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_disk_and_uefi ... ok ironic.tests.unit.drivers.modules.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_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__flexibly_program_boot_order_for_pxe ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device ... ok ironic.tests.unit.drivers.modules.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.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_inspect_hardware ... 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.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_boot_device_with_no_boot_device ... ok ironic.tests.unit.drivers.modules.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.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode ... ok ironic.tests.unit.drivers.modules.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.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.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.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__get_next_persistent_boot_mode_with_non_persistent_boot_mode ... ok ironic.tests.unit.drivers.modules.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.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.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.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_with_no_bios_setting ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test__is_boot_order_flexibly_programmable_with_no_bios_setting ... ok ironic.tests.unit.drivers.modules.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.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.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_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.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_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.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.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_not_flexibly_programmable ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_called_with_unknown_boot_mode ... ok ironic.tests.unit.drivers.modules.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.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.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.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_fail ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_fail ... ok ironic.tests.unit.drivers.modules.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.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.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_without_clean_step ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_list_unfinished_jobs_without_clean_step ... ok ironic.tests.unit.drivers.modules.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.irmc.test_inspect.IRMCInspectTestCase.test_validate ironic.tests.unit.drivers.modules.irmc.test_inspect.IRMCInspectTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_without_clean_step ironic.tests.unit.drivers.modules.drac.test_management.DracManagementInternalMethodsTestCase.test_set_boot_device_with_multiple_unfinished_jobs_without_clean_step ... ok ironic.tests.unit.drivers.modules.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_management.IRMCManagementTestCase.test_get_properties ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_clean ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_clean ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_exception ... ok ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_deploy ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_already_failed_in_deploy ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_ipmitool_ok ... ok ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_clean ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_with_completed_job_in_clean ... ok ironic.tests.unit.drivers.modules.irmc.test_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.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.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_get_sensors_data_scci_ok ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_inject_nmi_ok ... ok ironic.tests.unit.drivers.modules.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.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.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ng ... ok ironic.tests.unit.drivers.modules.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.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.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.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_without_update ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__check_node_raid_jobs_without_update ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_cdrom ... ok ironic.tests.unit.drivers.modules.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.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_drac_wsman ironic.tests.unit.drivers.modules.drac.test_periodic_task.DracPeriodicTaskTestCase.test__query_raid_config_job_status_drac_wsman ... ok ironic.tests.unit.drivers.modules.irmc.test_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.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.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.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.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.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.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.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.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_management_interface_set_boot_device_ok_safe ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_invalid_raid_level ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__calculate_spans_for_invalid_raid_level ... ok ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_excelude_all ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__filter_logical_disks_excelude_all ... ok ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate ironic.tests.unit.drivers.modules.irmc.test_management.IRMCManagementTestCase.test_validate ... 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.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.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.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.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.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test___fail_validation_with_raid_level_is_none ... ok ironic.tests.unit.drivers.modules.drac.test_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.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.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.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.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.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.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.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.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.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_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.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__volume_usage_per_disk_mb ironic.tests.unit.drivers.modules.drac.test_raid.DracCreateRaidConfigurationHelpersTestCase.test__volume_usage_per_disk_mb ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test__reset_raid_config ... ok ironic.tests.unit.drivers.modules.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.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_abandon_config ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validate_capacity_with_physical_disk ... ok ironic.tests.unit.drivers.modules.drac.test_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.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.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.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.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_clear_foreign_config ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_not_enough_valid_disks ... ok ironic.tests.unit.drivers.modules.drac.test_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.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.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.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_fail ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_commit_config_fail ... ok ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_with_physical_disk_insufficient ... ok ironic.tests.unit.drivers.modules.drac.test_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.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.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.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk ... ok ironic.tests.unit.drivers.modules.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.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.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_with_optional_attrs ironic.tests.unit.drivers.modules.drac.test_raid.DracManageVirtualDisksTestCase.test_create_virtual_disk_with_optional_attrs ... ok ironic.tests.unit.drivers.modules.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.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.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.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks ironic.tests.unit.drivers.modules.irmc.test_raid.IRMCRaidConfigurationInternalMethodsTestCase.test__fail_validation_without_physical_disks ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.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.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.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.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network ... ok ironic.tests.unit.drivers.modules.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.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.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.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_get_supported_boot_modes ... ok ironic.tests.unit.drivers.modules.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.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_with_sg ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_inspection_network_with_sg ... ok ironic.tests.unit.drivers.modules.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.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.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.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.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_provisioning_network_from_node ... ok ironic.tests.unit.drivers.modules.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.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.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode_fail ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_set_boot_mode_fail ... ok ironic.tests.unit.drivers.modules.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.ibmc.test_management.IBMCManagementTestCase.test_validate ironic.tests.unit.drivers.modules.ibmc.test_management.IBMCManagementTestCase.test_validate ... 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.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_from_node ... ok ironic.tests.unit.drivers.modules.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.ibmc.test_vendor.IBMCVendorTestCase.test_list_raid_controller ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_list_raid_controller ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_add_rescuing_network_with_sg ... ok ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_validate ironic.tests.unit.drivers.modules.ibmc.test_vendor.IBMCVendorTestCase.test_validate ... 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.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.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_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume ... ok ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_clean_up_instance_boot_from_volume_bios ... ok ironic.tests.unit.drivers.modules.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.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.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.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.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.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_instance_boot_from_volume ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_client_id ... ok ironic.tests.unit.drivers.modules.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.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.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying ironic.tests.unit.drivers.modules.ilo.test_boot.IloiPXEBootTestCase.test_prepare_ramdisk_in_deploying ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups_no_address ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_configure_tenant_networks_with_portgroups_no_address ... ok ironic.tests.unit.drivers.modules.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.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.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.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_init_incorrect_provisioning_net ... ok ironic.tests.unit.drivers.modules.ilo.test_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.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_false ... ok ironic.tests.unit.drivers.modules.ilo.test_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.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_need_power_on_true ... ok ironic.tests.unit.drivers.modules.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.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.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_cleaning_network_from_node ... ok ironic.tests.unit.drivers.modules.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.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.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_remove_provisioning_network_from_node ... ok ironic.tests.unit.drivers.modules.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.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.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_1 ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_portgroup_1 ... ok ironic.tests.unit.drivers.modules.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.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_unconfigure_tenant_networks_smartnic ... ok ironic.tests.unit.drivers.modules.ilo.test_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.network.test_neutron.NeutronInterfaceTestCase.test_validate ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_inspection ... ok ironic.tests.unit.drivers.modules.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.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_validate_rescue_exc ... ok ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_attach ... ok ironic.tests.unit.drivers.modules.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.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_detach ... ok ironic.tests.unit.drivers.modules.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.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.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed ironic.tests.unit.drivers.modules.network.test_neutron.NeutronInterfaceTestCase.test_vif_port_changed ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_clean ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_clean ... ok ironic.tests.unit.drivers.modules.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.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.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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_delete ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__check_node_raid_config_pending_delete ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__get_storage_controller ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid0 ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid0 ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid1 ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid1 ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid5 ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid5 ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid6 ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__max_volume_size_bytes_raid6 ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_failed ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_failed ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_still_processing ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_still_processing ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_success ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_success ... ok ironic.tests.unit.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.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_task_mon_error ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__raid_config_in_progress_task_mon_error ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid10 ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid10 ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid5 ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test__volume_usage_per_disk_bytes_raid5 ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1a ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1a ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_immediate ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_immediate ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_on_reset ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_1b_apply_time_on_reset ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2 ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2 ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2_on_reset ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_2_on_reset ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_3 ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_3 ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_4 ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_4 ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5a ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5a ... ok ironic.tests.unit.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.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5b ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_5b ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_6 ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_case_6 ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_interface_type ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_create_config_interface_type ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_immediate ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_immediate ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_on_reset ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_delete_config_on_reset ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_get_physical_disks ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_get_physical_disks ... ok ironic.tests.unit.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.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_update_raid_config_missing_raid_type ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_update_raid_config_missing_raid_type ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config_scsi ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_validate_raid_config_scsi ... ok ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_volume_create_error_handler ironic.tests.unit.drivers.modules.redfish.test_raid.RedfishRAIDTestCase.test_volume_create_error_handler ... ok ironic.tests.unit.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.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.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.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.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.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.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.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.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready_with_connection_error ironic.tests.unit.drivers.modules.redfish.test_utils.RedfishUtilsSystemTestCase.test_wait_until_get_system_ready_with_connection_error ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_clean_up ... 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.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.TestAgentDeploy.test_deploy_storage_should_write_image_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_storage_should_write_image_false ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_deploy_with_deployment_reboot ... ok ironic.tests.unit.drivers.modules.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.test_agent.TestAgentDeploy.test_get_clean_steps ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_clean_steps_config_priority ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_active_and_unrescue_states ... ok ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_ok_initial_power_off ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_adopting ... 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.TestAgentDeploy.test_prepare_cleaning ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning ... 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.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_cleaning_manage_agent_boot_false ... ok ironic.tests.unit.drivers.modules.test_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.TestAgentDeploy.test_prepare_instance_boot ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot ... 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.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.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.TestAgentDeploy.test_prepare_instance_boot_partition_localboot_ppc64 ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_partition_localboot_ppc64 ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_storage_should_write_image_with_smartnic ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_instance_boot_storage_should_write_image_with_smartnic ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_manage_agent_boot_false ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_rescue_states ... 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.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.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.test_agent.TestAgentDeploy.test_prepare_with_neutron_net ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_neutron_net ... ok ironic.tests.unit.drivers.modules.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.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_prepare_with_smartnic_port ... ok ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down ... ok ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_cache_bios_settings_failed ... ok ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_factory_reset ... ok ironic.tests.unit.drivers.modules.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.irmc.test_bios.IRMCBIOSTestCase.test_validate ironic.tests.unit.drivers.modules.irmc.test_bios.IRMCBIOSTestCase.test_validate ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_tear_down_cleaning_manage_agent_boot_false ... ok ironic.tests.unit.drivers.modules.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_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.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_agent.TestAgentDeploy.test_validate ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate ... 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_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.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.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_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.test_agent.TestAgentDeploy.test_validate_invalid_image_type ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_image_type ... ok ironic.tests.unit.drivers.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.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_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.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_clean_up_ramdisk ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints_iinfo ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_invalid_root_device_hints_iinfo ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_partition_image ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_instance_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum ... ok ironic.tests.unit.drivers.modules.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.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum_os_algo ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_checksum_os_algo ... ok ironic.tests.unit.drivers.modules.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_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_algo ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_algo ... ok ironic.tests.unit.drivers.modules.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.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.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_image_hash ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_validate_nonglance_image_no_os_image_hash ... ok ironic.tests.unit.drivers.modules.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.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_cleaning ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_prepare_ramdisk_glance_image_deploying ... ok ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image ... 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.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.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.test_agent.TestAgentDeploy.test_write_image_partition_image ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_partition_image ... ok ironic.tests.unit.drivers.modules.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.test_agent.TestAgentDeploy.test_write_image_render_configdrive ironic.tests.unit.drivers.modules.test_agent.TestAgentDeploy.test_write_image_render_configdrive ... ok ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate ironic.tests.unit.drivers.modules.irmc.test_boot.IRMCVirtualMediaBootTestCase.test_validate ... 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.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.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.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.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_cleaning ... ok ironic.tests.unit.drivers.modules.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_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.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.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.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_invalid_target_state ... ok ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_first_run ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_continue_deploy_first_run ... 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.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.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.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.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_scci_exception ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_snmp_exception ... ok ironic.tests.unit.drivers.modules.test_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.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__set_power_state_soft_power_off_ok ... ok ironic.tests.unit.drivers.modules.test_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.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.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_power_off ... ok ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_soft_reboot ... ok ironic.tests.unit.drivers.modules.test_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.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout ironic.tests.unit.drivers.modules.irmc.test_power.IRMCPowerInternalMethodsTestCase.test__wait_power_state_timeout ... ok ironic.tests.unit.drivers.modules.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.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_noops_in_wrong_state ... ok ironic.tests.unit.drivers.modules.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.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_add_provisioning_network ... ok ironic.tests.unit.drivers.modules.test_agent_base.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.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.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.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.network.test_noop.NoopInterfaceTestCase.test_get_node_network_data ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_node_network_data ... ok ironic.tests.unit.drivers.modules.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.network.test_noop.NoopInterfaceTestCase.test_get_properties ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_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_noop.NoopInterfaceTestCase.test_port_changed ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_port_changed ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_portgroup_changed ... ok ironic.tests.unit.drivers.modules.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.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.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.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_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.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.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.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_resume_clean ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_validate ... 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.network.test_noop.NoopInterfaceTestCase.test_vif_attach ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_attach ... ok ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_with_reservation ironic.tests.unit.drivers.modules.test_agent_base.HeartbeatMixinTest.test_heartbeat_with_reservation ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_detach ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_bios ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_bios ... ok ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_list ironic.tests.unit.drivers.modules.network.test_noop.NoopInterfaceTestCase.test_vif_list ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback_bios ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_fallback_bios ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_other_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_other_arch ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_uefi ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_boot_file_uefi ... ok ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_bios_registry_save ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_bios_registry_save ... ok ironic.tests.unit.drivers.modules.test_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.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.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_empty_bios_registry ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_empty_bios_registry ... ok ironic.tests.unit.drivers.modules.test_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.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_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_override_pxe_fallback ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_ipxe_config_template_override_pxe_fallback ... ok ironic.tests.unit.drivers.modules.redfish.test_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.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_bios_without_by_arch ... ok ironic.tests.unit.drivers.modules.test_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.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_no_bios_registry ironic.tests.unit.drivers.modules.redfish.test_bios.RedfishBiosRegistryTestCase.test_cache_no_bios_registry ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_boot_file_cpu_not_in_by_arch ... ok ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup ... 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.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_notstaged ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_notstaged ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.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.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_swift_fails ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_cleanup_swift_fails ... ok ironic.tests.unit.drivers.modules.test_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_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_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.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_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_cpu_in_by_arch ... ok ironic.tests.unit.drivers.modules.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.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.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.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property_bios ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_emtpy_property_bios ... ok ironic.tests.unit.drivers.modules.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.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node ironic.tests.unit.drivers.modules.test_deploy_utils.GetPxeBootConfigTestCase.test_get_pxe_config_template_per_node ... ok ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_get_swift_temp_url ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_get_swift_temp_url ... ok ironic.tests.unit.drivers.modules.test_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.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.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id ironic.tests.unit.drivers.modules.test_deploy_utils.GetSingleNicTestCase.test_get_single_nic_with_cleaning_vif_port_id ... ok ironic.tests.unit.drivers.modules.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.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.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 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 /usr/lib/python3/dist-packages/jsonschema/validators.py:1074: DeprecationWarning: The metaschema specified by $schema was not found. Using the latest draft to validate, but this will raise an error in the future. cls = validator_for(schema) ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_with_master_path ... 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.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path ironic.tests.unit.drivers.modules.test_deploy_utils.InstanceImageCacheTestCase.test_without_master_path ... 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_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 /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.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 /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.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_not_string ironic.tests.unit.drivers.modules.redfish.test_firmware_utils.FirmwareUtilsTestCase.test_validate_update_firmware_args_url_not_string ... ok ironic.tests.unit.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 /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_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_image_not_found ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_image_not_found ... ok ironic.tests.unit.drivers.modules.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_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.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_create_subscription ... ok ironic.tests.unit.drivers.modules.test_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.redfish.test_vendor.RedfishVendorPassthruTestCase.test_delete_subscription ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_delete_subscription ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.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.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.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_cd ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_eject_vmedia_cd ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForDeploy.test_build_instance_info_for_deploy_source_redirect ... ok ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch ... ok ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions_empty ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_all_subscriptions_empty ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_already_raw ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_estimate_fallback ironic.tests.unit.drivers.modules.test_image_cache.TestFetchCleanup.test__fetch_estimate_fallback ... ok ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_does_not_exist ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_does_not_exist ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_large_url ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_large_url ... ok ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_exists ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_get_subscription_exists ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_linkfail ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_linkfail ... ok ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_invalid_delete_subscription ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_invalid_delete_subscription ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_raises_memory_guard ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheDownload.test__download_image_raises_memory_guard ... ok ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_create_subscription ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_create_subscription ... ok ironic.tests.unit.drivers.modules.test_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.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.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint ... ok ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_mdns ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_mdns ... ok ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_dev ironic.tests.unit.drivers.modules.redfish.test_vendor.RedfishVendorPassthruTestCase.test_validate_invalid_dev ... ok ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_no_loopback ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_no_loopback ... ok ironic.tests.unit.drivers.modules.test_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_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_override ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_callback_endpoint_override ... ok ironic.tests.unit.drivers.modules.test_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_inspector.CommonFunctionsTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok ironic.tests.unit.drivers.modules.test_inspector.CommonFunctionsTestCase.test_validate_ok ... ok ironic.tests.unit.drivers.modules.test_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_inspector.GetClientTestCase.test__get_client ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client ... 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 ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_agent_client ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy_conflict ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_agent_busy_conflict ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_okay_error_typeerror_embedded ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_error_code_okay_error_typeerror_embedded ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_is_running ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_is_running ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_not_running ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_command_not_running ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_no_command_running ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_no_command_running ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_wrong_command_running ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_connect_wrong_command_running ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_json ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_fail_post ... ok ironic.tests.unit.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.test_inspector.GetClientTestCase.test__get_client_standalone ironic.tests.unit.drivers.modules.test_inspector.GetClientTestCase.test__get_client_standalone ... 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_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.modules.test_pxe.PXEBootTestCase.test_clean_up_instance ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_instance ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_clean_up_ramdisk ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify ... ok ironic.tests.unit.drivers.modules.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_agent_client.TestAgentClient.test__command_verify_config ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_config ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable_in_driver_info ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_disable_in_driver_info ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_internal ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_internal ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_invalid_file ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_verify_invalid_file ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_body ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_active ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_active ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__get_command_url_fail ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_content_type_header ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_execute_clean_step ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart_bios ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_kickstart_bios ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_exc ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_exists ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback_restricted ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_finalize_rescue_fallback_restricted ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_clean_steps ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_instance_ramdisk_pxe_conf_missing ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_no_retries ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_no_retries ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_retries ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_retries ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_verify ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_get_commands_status_verify ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader_with_prep ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_install_bootloader_with_prep ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_power_off ... ok ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test_sync ... 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 ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure ... 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_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.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_configure_unsupported ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_configure_unsupported ... 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.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_boot_mode_utils.SecureBootTestCase.test_deconfigure_exception ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_exception ... ok ironic.tests.unit.drivers.modules.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_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_rescue ... ok ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_unsupported ironic.tests.unit.drivers.modules.test_boot_mode_utils.SecureBootTestCase.test_deconfigure_unsupported ... ok ironic.tests.unit.drivers.modules.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_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_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__ensure_console_pid_dir_exists_fail ... ok ironic.tests.unit.drivers.modules.test_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.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_prepare_ramdisk_set_boot_mode_not_called ... ok ironic.tests.unit.drivers.modules.test_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 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_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.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_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_console_utils.ConsoleUtilsTestCase.test__stop_console_exception ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_exception ... ok ironic.tests.unit.drivers.modules.test_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_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_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_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_forced_kill ... ok ironic.tests.unit.drivers.modules.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_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_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_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__stop_console_shellinabox_not_running ... ok ironic.tests.unit.drivers.modules.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_pxe.PXEBootTestCase.test_validate_good ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_good ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_default ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_default ... ok ironic.tests.unit.drivers.modules.test_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_console_utils.ConsoleUtilsTestCase.test__verify_port_hostname ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_hostname ... ok ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test__verify_port_ipv4 ... ok ironic.tests.unit.drivers.modules.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_pxe.PXEBootTestCase.test_validate_inspection_no_inspection_ramdisk ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_inspection_no_inspection_ramdisk ... ok ironic.tests.unit.drivers.modules.test_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_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_console_utils.ConsoleUtilsTestCase.test_allocate_port_range_retry ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_allocate_port_range_retry ... ok ironic.tests.unit.drivers.modules.test_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_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.test_pxe.PXEBootTestCase.test_validate_non_local ironic.tests.unit.drivers.modules.test_pxe.PXEBootTestCase.test_validate_non_local ... ok ironic.tests.unit.drivers.modules.test_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_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_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_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_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.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_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_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_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_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_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.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_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_make_persistent_password_file_fail ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console ... ok ironic.tests.unit.drivers.modules.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_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail ... ok ironic.tests.unit.drivers.modules.test_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_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.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_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_fail_nopiddir ... ok ironic.tests.unit.drivers.modules.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_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_nopid ... ok ironic.tests.unit.drivers.modules.test_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_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_shellinabox_console_timeout ... ok ironic.tests.unit.drivers.modules.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_console_utils.ConsoleUtilsTestCase.test_start_socat_console ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console ... ok ironic.tests.unit.drivers.modules.test_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_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_bind_addr_default_ipv4 ... ok ironic.tests.unit.drivers.modules.test_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_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_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_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_default_timeout ... ok ironic.tests.unit.drivers.modules.test_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_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_check_arg_timeout ... ok ironic.tests.unit.drivers.modules.test_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_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.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_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail ... ok ironic.tests.unit.drivers.modules.test_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_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_start_socat_console_fail_nopiddir ... ok ironic.tests.unit.drivers.modules.test_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_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.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_shellinabox_console_fail_nopid ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_stop_socat_console_fail_nopid ... ok ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_valid_console_port_range ironic.tests.unit.drivers.modules.test_console_utils.ConsoleUtilsTestCase.test_valid_console_port_range ... ok ironic.tests.unit.drivers.modules.test_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_deploy_utils.OtherFunctionTestCase.test_fetch_images ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images ... ok ironic.tests.unit.drivers.modules.test_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_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_fetch_images_fail ... ok ironic.tests.unit.drivers.modules.test_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_deploy_utils.OtherFunctionTestCase.test_get_boot_option_anaconda_deploy ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_boot_option_anaconda_deploy ... ok ironic.tests.unit.drivers.modules.test_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_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_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_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_fail ... ok ironic.tests.unit.drivers.modules.test_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_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_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_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_get_ironic_api_url_none ... ok ironic.tests.unit.drivers.modules.test_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_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_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_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.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_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_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_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.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_deploy_utils.OtherFunctionTestCase.test_set_failed_state ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state ... ok ironic.tests.unit.drivers.modules.test_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_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_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_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.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_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.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_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff ironic.tests.unit.drivers.modules.test_deploy_utils.OtherFunctionTestCase.test_set_failed_state_no_poweroff ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_all_supported_capabilities ... ok ironic.tests.unit.drivers.modules.test_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_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_get_disk_label ... ok ironic.tests.unit.drivers.modules.test_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_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_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 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_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_false ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_eaton_power_snmp_objects ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_invalid ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_is_secure_boot_requested_true ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_delay ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_parse_instance_info_capabilities ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_off_invalid_state ... 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_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_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.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_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_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_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_snmp.SNMPDeviceDriverTestCase.test_power_on ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_on ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc ironic.tests.unit.drivers.modules.test_deploy_utils.ParseInstanceInfoCapabilitiesTestCase.test_validate_boot_mode_capability_with_exc ... ok ironic.tests.unit.drivers.modules.test_snmp.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_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.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_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option ironic.tests.unit.drivers.modules.test_snmp.SNMPDeviceDriverTestCase.test_power_reset_delay_option ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_drops_md5 ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_force_raw_drops_md5 ... ok ironic.tests.unit.drivers.modules.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_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image ... ok ironic.tests.unit.drivers.modules.test_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_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_dinfo ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_dinfo ... ok ironic.tests.unit.drivers.modules.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_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_iinfo ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_local_image_via_iinfo ... ok ironic.tests.unit.drivers.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_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw ironic.tests.unit.drivers.modules.test_deploy_utils.TestBuildInstanceInfoForHttpProvisioning.test_build_instance_info_no_force_raw ... ok ironic.tests.unit.drivers.modules.test_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_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_check_interface_capability ... ok ironic.tests.unit.drivers.modules.test_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_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume ... ok ironic.tests.unit.drivers.modules.test_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_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_get_remote_boot_volume_none ... ok ironic.tests.unit.drivers.modules.test_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_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_is_iscsi_boot ... 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_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.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_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.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_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.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_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.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_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.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.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.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.test_snmp.SNMPDriverTestCase.test_get_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_off ... ok ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration ironic.tests.unit.drivers.modules.test_deploy_utils.TestStorageInterfaceUtils.test_tear_down_storage_configuration ... ok ironic.tests.unit.drivers.modules.test_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.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.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate ... ok ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw ironic.tests.unit.drivers.modules.test_image_cache.TestImageCacheFetch.test_fetch_image_dest_and_master_uptodate_no_force_raw ... ok ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_power_state_snmp_failure ... ok ironic.tests.unit.drivers.modules.test_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.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_snmp.SNMPDriverTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_get_properties ... 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.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_snmp.SNMPDriverTestCase.test_reboot ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot ... 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.test_snmp.SNMPDriverTestCase.test_reboot_error ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_error ... 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.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_snmp.SNMPDriverTestCase.test_reboot_snmp_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_snmp_failure ... ok ironic.tests.unit.drivers.modules.test_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_snmp.SNMPDriverTestCase.test_reboot_timeout ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_reboot_timeout ... 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_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_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_snmp.SNMPDriverTestCase.test_set_power_state_off ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off ... ok ironic.tests.unit.drivers.modules.test_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_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_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_off_snmp_failure ... ok ironic.tests.unit.drivers.modules.test_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_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_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_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_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure ironic.tests.unit.drivers.modules.test_snmp.SNMPDriverTestCase.test_set_power_state_on_snmp_failure ... ok ironic.tests.unit.drivers.modules.test_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_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.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.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_power_state ... ok ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__find_param ... 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_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.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_get_properties ... ok ironic.tests.unit.drivers.modules.test_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.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_reboot ... 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.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.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_file ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_file ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_set_power ... ok ironic.tests.unit.drivers.modules.test_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.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.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_swift_noop ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_swift_noop ... ok ironic.tests.unit.drivers.modules.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.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_swift_schema ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_bootable_iso_swift_schema ... ok ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate ironic.tests.unit.drivers.modules.xclarity.test_power.XClarityPowerDriverTestCase.test_validate ... 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.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.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_argsinfo ... ok ironic.tests.unit.drivers.modules.test_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.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_bad_priority ... ok ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_extra_params ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_extra_params ... ok ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only ironic.tests.unit.drivers.test_base.DeployStepDecoratorTestCase.test_deploy_step_priority_only ... ok ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params ... ok ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_apply_configuration_wrapper ... ok ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_defaults ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_defaults ... ok ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper ironic.tests.unit.drivers.test_base.TestBIOSInterface.test_factory_reset_wrapper ... ok ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info ... ok ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_boot_mode_default_impl ... ok ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info_bios ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_driver_info_bios ... ok ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_indicator_state_default_impl ... ok ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses ironic.tests.unit.drivers.test_base.TestManagementInterface.test_get_mac_addresses ... ok ironic.tests.unit.drivers.modules.test_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.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.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.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_cleaning ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_kernel_params_for_ramdisk_cleaning ... ok ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl ironic.tests.unit.drivers.test_base.TestManagementInterface.test_inject_nmi_default_impl ... ok ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl ironic.tests.unit.drivers.test_base.TestManagementInterface.test_set_boot_mode_default_impl ... ok ironic.tests.unit.drivers.modules.test_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.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_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_uefi ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test__prepare_iso_image_uefi ... ok ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_default_interfaces ... 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.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.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.test_ilo.IloHardwareTestCase.test_override_with_inspector ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_inspector ... ok ironic.tests.unit.drivers.modules.test_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.test_ilo.IloHardwareTestCase.test_override_with_no_bios ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_no_bios ... ok ironic.tests.unit.drivers.modules.test_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.test_ilo.IloHardwareTestCase.test_override_with_pxe ironic.tests.unit.drivers.test_ilo.IloHardwareTestCase.test_override_with_pxe ... 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_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_configdrive_image ... ok ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method ironic.tests.unit.drivers.test_utils.MixinVendorInterfaceTestCase.test_vendor_interface_validate_bad_method ... ok ironic.tests.unit.drivers.modules.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_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.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_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso ... 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.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_deploy_iso_existing_iso ... ok ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid ironic.tests.unit.objects.test_chassis.TestChassisObject.test_get_by_uuid ... 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.objects.test_chassis.TestChassisObject.test_list ironic.tests.unit.objects.test_chassis.TestChassisObject.test_list ... 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.objects.test_chassis.TestChassisObject.test_payload_schemas ironic.tests.unit.objects.test_chassis.TestChassisObject.test_payload_schemas ... 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.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_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.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_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image ... 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_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.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.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_prefix ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_disk_image_prefix ... ok ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image ironic.tests.unit.drivers.modules.test_image_utils.RedfishImageUtilsTestCase.test_prepare_floppy_image ... ok ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_destroy ... 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.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_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.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.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.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_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_fail ... 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.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.objects.test_deployment.TestDeploymentObject.test_refresh ironic.tests.unit.objects.test_deployment.TestDeploymentObject.test_refresh ... 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.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.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.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive ironic.tests.unit.objects.test_node.TestNodeObject.test_as_dict_secure_with_configdrive ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_all_options_pass ... 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_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_fail ... 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.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_no_ipmitool ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_dual_bridge_pass ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_create ironic.tests.unit.objects.test_node.TestNodeObject.test_create ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_no_ipmitool ... ok ironic.tests.unit.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.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_single_bridge_pass ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits ironic.tests.unit.objects.test_node.TestNodeObject.test_create_with_traits ... 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.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.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.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.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolCheckOptionSupportedTestCase.test_check_timing_pass ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_instance_not_found ... ok ironic.tests.unit.drivers.modules.test_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.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_ipmitool.IPMIToolPrivateMethodTestCase.test__check_cipher_suite_errors ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__check_cipher_suite_errors ... 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.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.objects.test_node.TestNodeObject.test_get_by_name_node_not_found ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_name_node_not_found ... ok ironic.tests.unit.drivers.modules.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.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_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.objects.test_node.TestNodeObject.test_get_by_uuid ironic.tests.unit.objects.test_node.TestNodeObject.test_get_by_uuid ... ok ironic.tests.unit.drivers.modules.test_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.objects.test_node.TestNodeObject.test_get_interface ironic.tests.unit.objects.test_node.TestNodeObject.test_get_interface ... 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.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_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.objects.test_node.TestNodeObject.test_list ironic.tests.unit.objects.test_node.TestNodeObject.test_list ... 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.objects.test_node.TestNodeObject.test_list_with_fields ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_empty_trait_present ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_empty_trait_present ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_traits ironic.tests.unit.objects.test_node.TestNodeObject.test_list_with_fields_traits ... ok ironic.tests.unit.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.objects.test_node.TestNodeObject.test_payload_schemas ironic.tests.unit.objects.test_node.TestNodeObject.test_payload_schemas ... 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.objects.test_node.TestNodeObject.test_refresh ironic.tests.unit.objects.test_node.TestNodeObject.test_refresh ... 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.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.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.objects.test_node.TestNodeObject.test_reserve ironic.tests.unit.objects.test_node.TestNodeObject.test_reserve ... 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.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_node.TestNodeObject.test_save ironic.tests.unit.objects.test_node.TestNodeObject.test_save ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_second_call_to_address_sleep ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_try_different_cipher_suite ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_try_different_cipher_suite ... ok ironic.tests.unit.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_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.objects.test_node.TestNodeObject.test_save_truncated ironic.tests.unit.objects.test_node.TestNodeObject.test_save_truncated ... 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.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.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.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.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.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.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_conductor_group_uppercase ... ok ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits ironic.tests.unit.objects.test_node.TestNodeObject.test_save_with_traits ... ok ironic.tests.unit.drivers.modules.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.objects.test_node.TestNodeObject.test_touch_provisioning ironic.tests.unit.objects.test_node.TestNodeObject.test_touch_provisioning ... 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.objects.test_node.TestNodeObject.test_update_with_invalid_properties ironic.tests.unit.objects.test_node.TestNodeObject.test_update_with_invalid_properties ... ok ironic.tests.unit.drivers.modules.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.objects.test_node_history.TestNodeHistoryObject.test_create ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_create ... 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.objects.test_node_history.TestNodeHistoryObject.test_destroy ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_destroy ... 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.objects.test_node_history.TestNodeHistoryObject.test_get ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_with_timing ... 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.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.objects.test_node_history.TestNodeHistoryObject.test_get_by_uuid ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_get_by_uuid ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_timing ... ok ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__exec_ipmitool_without_username ... 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_history.TestNodeHistoryObject.test_list_none ironic.tests.unit.objects.test_node_history.TestNodeHistoryObject.test_list_none ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__ipmitool_timing_args ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__ipmitool_timing_args ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_caller_exception ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification ironic.tests.unit.objects.test_notification.TestNotificationBase.test_emit_notification ... 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.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_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_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.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_notification.TestNotificationBase.test_event_type_with_status ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_with_status ... ok ironic.tests.unit.drivers.modules.test_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.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails ironic.tests.unit.objects.test_notification.TestNotificationBase.test_event_type_without_status_fails ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_with_numeric_password ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_with_numeric_password ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__make_password_file_write_exception ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_have_credentials ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets ironic.tests.unit.objects.test_notification.TestNotificationBase.test_mask_secrets_has_secrets ... ok ironic.tests.unit.drivers.modules.test_ipmitool.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.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_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.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.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.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.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_ipmi_1_5 ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_ipmi_1_5 ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_not_a_number ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_ipmi_cipher_suite_not_a_number ... ok ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled ironic.tests.unit.objects.test_notification.TestNotificationBase.test_no_emit_notifs_disabled ... ok ironic.tests.unit.drivers.modules.test_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.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_notification.TestNotificationBase.test_populate_schema ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema ... 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.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.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_no_object_field ... ok ironic.tests.unit.drivers.modules.test_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.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates ironic.tests.unit.objects.test_notification.TestNotificationBase.test_populate_schema_nullable_field_auto_populates ... ok ironic.tests.unit.drivers.modules.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.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra ... 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.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.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.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_lower_version ... ok ironic.tests.unit.drivers.modules.test_ipmitool.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.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra ironic.tests.unit.objects.test_portgroup.TestConvertToVersion.test_vif_in_extra_not_in_extra ... ok ironic.tests.unit.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__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.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 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.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.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 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'}, 'lookup': [{'href': 'http://localhost/v1/lookup/', 'rel': 'self'}, {'href': 'http://localhost/lookup/', 'rel': 'bookmark'}], 'heartbeat': [{'href': 'http://localhost/v1/heartbeat/', 'rel': 'self'}, {'href': 'http://localhost/heartbeat/', 'rel': 'bookmark'}]} GET: /v1/ {} GOT:{'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'media_types': {'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}, 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}, 'portgroups': [{'href': 'http://localhost/v1/portgroups/', 'rel': 'self'}, {'href': 'http://localhost/portgroups/', 'rel': 'bookmark'}], 'lookup': [{'href': 'http://localhost/v1/lookup/', 'rel': 'self'}, {'href': 'http://localhost/lookup/', 'rel': 'bookmark'}], 'heartbeat': [{'href': 'http://localhost/v1/heartbeat/', 'rel': 'self'}, {'href': 'http://localhost/heartbeat/', 'rel': 'bookmark'}]} GET: /v1/ {} GOT:{'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'media_types': {'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}, 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}, 'portgroups': [{'href': 'http://localhost/v1/portgroups/', 'rel': 'self'}, {'href': 'http://localhost/portgroups/', 'rel': 'bookmark'}], 'volume': [{'href': 'http://localhost/v1/volume/', 'rel': 'self'}, {'href': 'http://localhost/volume/', 'rel': 'bookmark'}], 'lookup': [{'href': 'http://localhost/v1/lookup/', 'rel': 'self'}, {'href': 'http://localhost/lookup/', 'rel': 'bookmark'}], 'heartbeat': [{'href': 'http://localhost/v1/heartbeat/', 'rel': 'self'}, {'href': 'http://localhost/heartbeat/', 'rel': 'bookmark'}]} GET: /v1/ {} GOT:{'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}, {'href': 'https://docs.openstack.org//ironic/latest/contributor//webapi.html', 'rel': 'describedby', 'type': 'text/html'}], 'media_types': {'base': 'application/json', 'type': 'application/vnd.openstack.ironic.v1+json'}, 'chassis': [{'href': 'http://localhost/v1/chassis/', 'rel': 'self'}, {'href': 'http://localhost/chassis/', 'rel': 'bookmark'}], 'nodes': [{'href': 'http://localhost/v1/nodes/', 'rel': 'self'}, {'href': 'http://localhost/nodes/', 'rel': 'bookmark'}], 'ports': [{'href': 'http://localhost/v1/ports/', 'rel': 'self'}, {'href': 'http://localhost/ports/', 'rel': 'bookmark'}], 'drivers': [{'href': 'http://localhost/v1/drivers/', 'rel': 'self'}, {'href': 'http://localhost/drivers/', 'rel': 'bookmark'}], 'version': {'id': 'v1', 'links': [{'href': 'http://localhost/v1/', 'rel': 'self'}], 'status': 'CURRENT', 'min_version': '1.1', 'version': '1.80'}} {'links': [{'id': 'port1', 'type': 'vif', 'ethernet_mac_address': '52:54:00:4f:ef:b7', 'vif_id': '96d4bfb9-b26e-41f3-bd2e-e6dcc1ccedb8', 'mtu': 1500}], 'networks': [{'id': '906e685a-b964-4d58-9939-9cf3af197c67', 'network_id': 'a87cc70a-3e15-4acf-8205-9b711a3531b7', 'type': 'ipv6', 'link': 'port1', 'ip_address': 'fd00:203:0:113::2', 'netmask': 'ffff:ffff:ffff:ffff::', 'routes': [{'network': '::0', 'netmask': '::0', 'gateway': 'fd00:203:0:113::1'}]}]} ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_invalid_bridging_type ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_no_bridging ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_missing_parameters ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_not_supported ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__parse_driver_info_with_single_bridging_pass ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_on_max_retries ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_error ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_exception ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_off ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__power_status_on ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test__soft_power_off_max_retries ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_bmc_initialization_in_progress ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_insufficient_resources_for_session ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_node_busy ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_out_of_space ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_non_retryable_failure_timeout ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_bmc_initialization_in_progress ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_insufficient_resources_for_session ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_node_busy ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_out_of_space ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retries_exceeded_timeout ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_bmc_initialization_in_progress ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_insufficient_resources_for_session ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_node_busy ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_out_of_space ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolPrivateMethodTestCase.test_exec_ipmitool_exception_retry_timeout ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__exec_stop_console ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__get_ipmi_cmd_without_user ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_empty_password ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test__start_console_fail_nodir ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_invalid_port ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port_auto_allocate ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_missing_port_auto_allocate ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_console_validate_wrong_ipmi_protocol_version ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_get_console ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_alloc_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_alloc_port ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_with_port ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_start_console_with_port ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console ... ok ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail ironic.tests.unit.drivers.modules.test_ipmitool.IPMIToolSocatDriverTestCase.test_stop_console_fail ... ok ironic.tests.unit.drivers.modules.test_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_ipxe.iPXEBootTestCase.test_clean_up_ramdisk ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_clean_up_ramdisk ... 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.test_ipxe.iPXEBootTestCase.test_get_properties ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_get_properties ... 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_ipxe.iPXEBootTestCase.test_prepare_instance_active ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_active ... ok ironic.tests.unit.drivers.modules.test_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.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_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.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_instance_ramdisk ... ok ironic.tests.unit.drivers.modules.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.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_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_ipxe.iPXEBootTestCase.test_prepare_ramdisk ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk ... 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.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.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.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_swift_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_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_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_ipxe_with_copy_no_file ... ok ironic.tests.unit.drivers.modules.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.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_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.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_bm ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_prepare_ramdisk_set_boot_mode_on_ironic ... ok ironic.tests.unit.drivers.modules.test_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.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.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_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.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_missing_deploy_ramdisk ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_fail_no_port ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_good_whole_disk_image ... ok ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_inspection ... 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.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.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false ironic.tests.unit.drivers.modules.test_ipxe.iPXEBootTestCase.test_validate_skip_check_write_image_false ... ok ironic.tests.unit.drivers.modules.test_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_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_ipxe.iPXEValidateRescueTestCase.test_validate_rescue ironic.tests.unit.drivers.modules.test_ipxe.iPXEValidateRescueTestCase.test_validate_rescue ... 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.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_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.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_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_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.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_status_retry ... ok ironic.tests.unit.drivers.modules.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.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts ironic.tests.unit.drivers.modules.test_pxe.iPXEBootRetryTestCase.test_check_boot_timeouts ... ok ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps ironic.tests.unit.drivers.test_base.CleanStepTestCase.test_get_and_execute_clean_steps ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_check_func_references ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_exclusive_task_metadata ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_ironicexception ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_noexception ... ok ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception ironic.tests.unit.drivers.test_base.PassthruDecoratorTestCase.test_passthru_nonironicexception ... 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.test_base.TestBootInterface.test_validate_rescue_default_impl ironic.tests.unit.drivers.test_base.TestBootInterface.test_validate_rescue_default_impl ... 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_default_interfaces ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_default_interfaces ... 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 WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_idrac ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_idrac ... ok 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 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 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_bios ironic.tests.unit.drivers.test_drac.IDRACHardwareTestCase.test_override_with_redfish_bios ... ok WARNI [ironic.drivers.modules.drac.vendor_passthru] Vendor passthru interface 'idrac' is deprecated and may be removed in a future release. Use 'idrac-wsman' instead. ironic.tests.unit.drivers.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.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 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 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.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_ibmc.IBMCHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_ibmc.IBMCHardwareTestCase.test_default_interfaces ... 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.test_ilo.Ilo5HardwareTestCase.test_override_raid ironic.tests.unit.drivers.test_ilo.Ilo5HardwareTestCase.test_override_raid ... 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.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_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.test_irmc.IRMCHardwareTestCase.test_override_with_inspector ironic.tests.unit.drivers.test_irmc.IRMCHardwareTestCase.test_override_with_inspector ... 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.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.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_IPA_command_fail ... ok ironic.tests.unit.drivers.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.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.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_swift ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_storage_fail_unkown ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_collect_ramdisk_logs_with_label ... ok ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_get_ramdisk_logs_file_name ... ok ironic.tests.unit.drivers.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.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift ironic.tests.unit.drivers.test_utils.UtilsRamdiskLogsTestCase.test_store_ramdisk_logs_swift ... ok ironic.tests.unit.drivers.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.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces ironic.tests.unit.drivers.test_xclarity.XClarityHardwareTestCase.test_default_interfaces ... ok ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_create ... ok ironic.tests.unit.objects.test_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.objects.test_allocation.TestAllocationObject.test_get_by_id ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_id ... 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.objects.test_allocation.TestAllocationObject.test_get_by_uuid ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_get_by_uuid ... ok ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_list ... 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.objects.test_allocation.TestAllocationObject.test_refresh ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_refresh ... ok ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save ironic.tests.unit.objects.test_allocation.TestAllocationObject.test_save ... 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.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.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.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_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_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.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_objects.TestRegistry.test_hook_chooses_newer_properly ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_chooses_newer_properly ... ok ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly ironic.tests.unit.objects.test_objects.TestRegistry.test_hook_keeps_newer_properly ... ok ironic.tests.unit.objects.test_port.TestPortObject.test_create ironic.tests.unit.objects.test_port.TestPortObject.test_create ... 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_port.TestPortObject.test_get_by_address ironic.tests.unit.objects.test_port.TestPortObject.test_get_by_address ... 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.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.objects.test_port.TestPortObject.test_list_deprecated_owner ironic.tests.unit.objects.test_port.TestPortObject.test_list_deprecated_owner ... 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_port.TestPortObject.test_refresh ironic.tests.unit.objects.test_port.TestPortObject.test_refresh ... 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_port.TestPortObject.test_save_after_refresh ironic.tests.unit.objects.test_port.TestPortObject.test_save_after_refresh ... 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_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_port.TestPortObject.test_supports_physical_network_supported ironic.tests.unit.objects.test_port.TestPortObject.test_supports_physical_network_supported ... 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_portgroup.TestPortgroupObject.test_create ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_create ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_bad_id_and_uuid_and_address_and_name ... ok ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_get_by_address ... 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.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.objects.test_portgroup.TestPortgroupObject.test_save ironic.tests.unit.objects.test_portgroup.TestPortgroupObject.test_save ... 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.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 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.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.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.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_payload_schemas ... 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.objects.test_volume_connector.TestVolumeConnectorObject.test_save ironic.tests.unit.objects.test_volume_connector.TestVolumeConnectorObject.test_save ... 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-ddfbd131-293b-4b70-8b65-811d3b743598 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-ddfbd131-293b-4b70-8b65-811d3b743598 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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/273693bc-ee3c-46a5-8764-bc072bf13ef9 GET: /v1/nodes/1be26c0b-03f2-4d2e-ae87-c02d7f33c123/history/273693bc-ee3c-46a5-8764-bc072bf13ef9 {} GOT:Response: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-4f1e11e9-250a-499d-b73d-3b409bf55979 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 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-4f1e11e9-250a-499d-b73d-3b409bf55979 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.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: 404 Not Found Content-Type: application/json Openstack-Request-Id: req-bec519cb-51fe-4a82-b514-05d6e68e6a15 X-Openstack-Ironic-Api-Maximum-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-bec519cb-51fe-4a82-b514-05d6e68e6a15 X-Openstack-Ironic-Api-Maximum-Version: 1.80 X-Openstack-Ironic-Api-Minimum-Version: 1.1 X-Openstack-Ironic-Api-Version: 1.80 {"error_message": "{\"faultcode\": \"Client\", \"faultstring\": \"Node 1ab63b9e-66d7-4cd7-8618-dddd0f9f7881 could not be found.\", \"debuginfo\": null}"} GET: / {} 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 Content-Type: application/json Openstack-Request-Id: req-b6e3f236-1722-4d48-bacb-eb3c45caf4d8 X-Openstack-Ironic-Api-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}"} 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/tmp8xlh4n36/tmp21r3ju4y' ---------------------------------------------------------------------- Ran 8768 tests in 1249.087s OK (skipped=44) + stestr slowest Test id Runtime (s) ----------------------------------------------------------------------------------------------------------------------------- ----------- ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncPostgres.test_models_sync 28.001 ironic.tests.unit.db.sqlalchemy.test_migrations.ModelsMigrationsSyncMysql.test_models_sync 24.545 ironic.tests.unit.db.sqlalchemy.test_migrations.TestMigrationsPostgreSQL.test_create_schema_and_version 7.560 ironic.tests.unit.drivers.modules.test_agent_client.TestAgentClient.test__command_poll 6.143 ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_with_context 5.175 ironic.tests.unit.conductor.test_manager.DoNodeTearDownTestCase.test__do_node_tear_down_from_valid_states 4.575 ironic.tests.unit.drivers.modules.ibmc.test_utils.IBMCUtilsTestCase.test_handle_ibmc_exception_retry 4.425 ironic.tests.unit.api.controllers.v1.test_node.TestPost.test_create_node_specify_interfaces 4.380 ironic.tests.unit.drivers.modules.ilo.test_power.IloPowerInternalMethodsTestCase.test__set_power_state_soft_reboot_fail_to_on 4.373 ironic.tests.unit.common.test_neutron.TestNeutronClient.test_get_neutron_client_auth_from_config 4.316 + 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 \ --output-file /build/reproducible-path/ironic-21.1.0/debian/ironic-common/usr/share/ironic-common/ironic.conf \ --wrap-width 140 \ --namespace ironic \ --namespace ironic_lib.disk_utils \ --namespace ironic_lib.disk_partitioner \ --namespace ironic_lib.exception \ --namespace ironic_lib.json_rpc \ --namespace ironic_lib.mdns \ --namespace ironic_lib.metrics \ --namespace ironic_lib.metrics_statsd \ --namespace ironic_lib.utils \ --namespace oslo.db \ --namespace oslo.messaging \ --namespace oslo.middleware.cors \ --namespace oslo.middleware.healthcheck \ --namespace oslo.middleware.http_proxy_to_wsgi \ --namespace oslo.concurrency \ --namespace oslo.policy \ --namespace oslo.log \ --namespace oslo.reports \ --namespace oslo.service.service \ --namespace oslo.service.periodic_task \ --namespace oslo.service.sslutils \ --namespace osprofiler \ --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.RLnmC4:[keystone_authtoken]/www_authenticate_uri pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.RLnmC4:[keystone_authtoken]/auth_type pkgos_inifile: Setting value in pkgos-readd-keystone-authtoken-missing-options.RLnmC4:[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 # Fix the default httpboot path, some of it is in the postinst # Set some nice defaults mkdir -p /build/reproducible-path/ironic-21.1.0/debian/ironic-common/etc/ironic/policy.d PYTHONPATH=/build/reproducible-path/ironic-21.1.0/debian/tmp/usr/lib/python3/dist-packages oslopolicy-sample-generator \ --output-file /build/reproducible-path/ironic-21.1.0/debian/ironic-common/etc/ironic/policy.d/00_default_policy.yaml \ --format yaml \ --namespace ironic.api WARNING:oslo_config.cfg:Deprecated: Option "format" from group "DEFAULT" is deprecated for removal ( ``policy_file`` support for JSON formatted file is deprecated. So these tools also deprecate the support of generating or upgrading policy file in JSON format. ). Its value may be silently ignored in the future. # Comment out deprecated policies sed -i 's/^"/#"/' /build/reproducible-path/ironic-21.1.0/debian/ironic-common/etc/ironic/policy.d/00_default_policy.yaml # Fixed using /etc/ironic/policy.d pkgos-fix-config-default /build/reproducible-path/ironic-21.1.0/debian/ironic-common/usr/share/ironic-common/ironic.conf oslo_policy policy_dirs /etc/ironic/policy.d pkgos_inifile: Setting value in /build/reproducible-path/ironic-21.1.0/debian/ironic-common/usr/share/ironic-common/ironic.conf:[oslo_policy]/policy_dirs sed -i 's|#connection=|connection=sqlite:////var/lib/ironic/ironicdb|' /build/reproducible-path/ironic-21.1.0/debian/ironic-common/usr/share/ironic-common/ironic.conf dh_install dh_missing --fail-missing make[1]: Leaving directory '/build/reproducible-path/ironic-21.1.0' dh_installdocs -O--buildsystem=python_distutils debian/rules override_dh_sphinxdoc make[1]: Entering directory '/build/reproducible-path/ironic-21.1.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions if ! PYTHONPATH=/build/reproducible-path/ironic-21.1.0 PYTHON=python3 python3 -m sphinx -a -b html doc/source /build/reproducible-path/ironic-21.1.0/debian/ironic-doc/usr/share/doc/ironic-doc/html ; then \ cat /tmp/sphinx-err* ; \ exit 1 ; \ fi Running Sphinx v5.3.0 connecting events for openstackdocstheme making output directory... done Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.version.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.app.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.config.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.functions.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.hooks.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.method.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.wsgi.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.base.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.link.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.root.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.version.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.allocation.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.bios.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.chassis.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.collection.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.conductor.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.deploy_template.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.driver.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.event.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.node.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.notification_utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.port.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.portgroup.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.ramdisk.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.versions.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.volume.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.volume_connector.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.controllers.v1.volume_target.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.middleware.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.middleware.auth_public_routes.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.middleware.json_ext.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.api.middleware.parsable_error.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.cmd.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.cmd.api.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.cmd.conductor.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.cmd.dbsync.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.cmd.singleprocess.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.cmd.status.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.args.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.boot_devices.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.boot_modes.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.cinder.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.components.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.config.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.context.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.dhcp_factory.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.driver_factory.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.exception.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.faults.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.fsm.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.hash_ring.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.i18n.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.image_service.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.images.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.indicator_states.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.keystone.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.kickstart_utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.molds.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.network.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.neutron.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.nova.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.policy.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.profiler.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.pxe_utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.raid.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.release_mappings.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.rpc.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.rpc_service.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.service.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.states.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.swift.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.wsgi_service.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.glance_service.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.glance_service.image_service.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.common.glance_service.service_utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conductor.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conductor.allocations.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conductor.base_manager.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conductor.cleaning.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conductor.deployments.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conductor.manager.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conductor.notification_utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conductor.periodics.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conductor.rpcapi.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conductor.steps.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conductor.task_manager.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conductor.utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conductor.verify.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.agent.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.anaconda.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.ansible.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.api.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.audit.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.auth.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.cinder.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.conductor.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.console.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.database.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.default.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.deploy.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.dhcp.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.dnsmasq.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.drac.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.glance.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.healthcheck.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.ibmc.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.ilo.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.inspector.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.ipmi.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.irmc.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.metrics.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.metrics_statsd.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.molds.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.neutron.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.nova.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.opts.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.pxe.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.redfish.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.service_catalog.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.snmp.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.swift.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.conf.xclarity.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.db.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.db.api.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.db.migration.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.db.sqlalchemy.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.db.sqlalchemy.api.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.db.sqlalchemy.migration.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.db.sqlalchemy.models.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.dhcp.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.dhcp.base.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.dhcp.dnsmasq.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.dhcp.neutron.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.dhcp.none.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.base.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.drac.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.fake_hardware.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.generic.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.hardware_type.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.ibmc.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.ilo.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.intel_ipmi.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.ipmi.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.irmc.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.redfish.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.snmp.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.xclarity.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.agent.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.agent_base.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.agent_client.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.agent_power.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.boot_mode_utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.console_utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.deploy_utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.fake.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.image_cache.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.image_utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.inspect_utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.inspector.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ipmitool.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ipxe.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.noop.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.noop_mgmt.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.pxe.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.pxe_base.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ramdisk.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.snmp.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ansible.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ansible.deploy.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.bios.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.boot.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.common.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.inspect.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.job.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.management.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.power.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.raid.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.drac.vendor_passthru.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ibmc.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ibmc.management.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ibmc.mappings.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ibmc.power.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ibmc.raid.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ibmc.utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ibmc.vendor.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.bios.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.boot.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.common.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.console.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.firmware_processor.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.inspect.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.management.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.power.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.raid.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.ilo.vendor.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.intel_ipmi.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.intel_ipmi.management.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.bios.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.boot.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.common.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.inspect.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.management.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.power.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.irmc.raid.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.network.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.network.common.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.network.flat.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.network.neutron.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.network.noop.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.redfish.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.redfish.bios.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.redfish.boot.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.redfish.firmware_utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.redfish.inspect.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.redfish.management.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.redfish.power.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.redfish.raid.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.redfish.utils.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.redfish.vendor.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.storage.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.storage.cinder.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.storage.external.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.storage.noop.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.xclarity.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.xclarity.common.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.xclarity.management.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.drivers.modules.xclarity.power.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.allocation.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.base.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.bios.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.chassis.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.conductor.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.deploy_template.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.deployment.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.fields.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.indirection.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.node.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.node_history.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.notification.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.port.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.portgroup.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.trait.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.volume_connector.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/ironic.objects.volume_target.rst. Creating file /build/reproducible-path/ironic-21.1.0/doc/source/contributor/api/modules.rst. [oslo_config.sphinxconfiggen] reading config generator instructions from /build/reproducible-path/ironic-21.1.0/doc/source/../../tools/config/ironic-config-generator.conf [oslo_config.sphinxconfiggen] writing sample configuration to /build/reproducible-path/ironic-21.1.0/doc/source/_static/ironic.conf.sample [oslo_policy.sphinxpolicygen] reading config generator instructions from /build/reproducible-path/ironic-21.1.0/doc/source/../../tools/policy/ironic-policy-generator.conf [oslo_policy.sphinxpolicygen] writing sample policy to /build/reproducible-path/ironic-21.1.0/doc/source/_static/ironic.policy.yaml.sample Using openstackdocstheme Sphinx theme from /usr/lib/python3/dist-packages/openstackdocstheme/theme building [mo]: all of 0 po files building [html]: all source files updating environment: [new config] 390 added, 0 changed, 0 removed reading sources... [ 0%] admin/adoption reading sources... [ 0%] admin/agent-power reading sources... [ 0%] admin/agent-token reading sources... [ 1%] admin/anaconda-deploy-interface reading sources... [ 1%] admin/api-audit-support reading sources... [ 1%] admin/bios reading sources... [ 1%] admin/boot-from-volume reading sources... [ 2%] admin/building-windows-images reading sources... [ 2%] admin/cleaning reading sources... [ 2%] admin/conductor-groups reading sources... [ 2%] admin/console reading sources... [ 3%] admin/deploy-steps reading sources... [ 3%] admin/dhcp-less reading sources... [ 3%] admin/drivers reading sources... [ 3%] admin/drivers/ansible reading sources... [ 4%] admin/drivers/fake reading sources... [ 4%] admin/drivers/ibmc reading sources... [ 4%] admin/drivers/idrac reading sources... [ 4%] admin/drivers/ilo reading sources... [ 5%] admin/drivers/intel-ipmi reading sources... [ 5%] admin/drivers/ipa reading sources... [ 5%] admin/drivers/ipmitool reading sources... [ 5%] admin/drivers/irmc reading sources... [ 6%] admin/drivers/redfish reading sources... [ 6%] admin/drivers/snmp reading sources... [ 6%] admin/drivers/xclarity reading sources... [ 6%] admin/fast-track reading sources... [ 7%] admin/gmr reading sources... [ 7%] admin/hardware-burn-in reading sources... [ 7%] admin/index reading sources... [ 7%] admin/inspection reading sources... [ 8%] admin/interfaces/boot reading sources... [ 8%] admin/interfaces/deploy reading sources... [ 8%] admin/metrics reading sources... [ 8%] admin/multitenancy reading sources... [ 9%] admin/node-deployment reading sources... [ 9%] admin/node-multitenancy reading sources... [ 9%] admin/notifications reading sources... [ 10%] admin/portgroups reading sources... [ 10%] admin/power-sync reading sources... [ 10%] admin/radosgw reading sources... [ 10%] admin/raid reading sources... [ 11%] admin/ramdisk-boot reading sources... [ 11%] admin/rescue reading sources... [ 11%] admin/retirement reading sources... [ 11%] admin/secure-rbac reading sources... [ 12%] admin/security reading sources... [ 12%] admin/troubleshooting reading sources... [ 12%] admin/tuning reading sources... [ 12%] admin/upgrade-guide reading sources... [ 13%] admin/upgrade-to-hardware-types reading sources... [ 13%] admin/vendor-passthru reading sources... [ 13%] cli/index reading sources... [ 13%] cli/ironic-dbsync reading sources... [ 14%] cli/ironic-status reading sources... [ 14%] configuration/config loading config file tools/config/ironic-config-generator.conf reading sources... [ 14%] configuration/index reading sources... [ 14%] configuration/policy reading sources... [ 15%] configuration/sample-config reading sources... [ 15%] configuration/sample-policy reading sources... [ 15%] contributor/adding-new-job reading sources... [ 15%] contributor/api/ironic reading sources... [ 16%] contributor/api/ironic.api reading sources... [ 16%] contributor/api/ironic.api.app reading sources... [ 16%] contributor/api/ironic.api.config reading sources... [ 16%] contributor/api/ironic.api.controllers reading sources... [ 17%] contributor/api/ironic.api.controllers.base reading sources... [ 17%] contributor/api/ironic.api.controllers.link reading sources... [ 17%] contributor/api/ironic.api.controllers.root reading sources... [ 17%] contributor/api/ironic.api.controllers.v1 reading sources... [ 18%] contributor/api/ironic.api.controllers.v1.allocation reading sources... [ 18%] contributor/api/ironic.api.controllers.v1.bios reading sources... [ 18%] contributor/api/ironic.api.controllers.v1.chassis reading sources... [ 18%] contributor/api/ironic.api.controllers.v1.collection reading sources... [ 19%] contributor/api/ironic.api.controllers.v1.conductor reading sources... [ 19%] contributor/api/ironic.api.controllers.v1.deploy_template reading sources... [ 19%] contributor/api/ironic.api.controllers.v1.driver reading sources... [ 20%] contributor/api/ironic.api.controllers.v1.event reading sources... [ 20%] contributor/api/ironic.api.controllers.v1.node reading sources... [ 20%] contributor/api/ironic.api.controllers.v1.notification_utils reading sources... [ 20%] contributor/api/ironic.api.controllers.v1.port reading sources... [ 21%] contributor/api/ironic.api.controllers.v1.portgroup reading sources... [ 21%] contributor/api/ironic.api.controllers.v1.ramdisk reading sources... [ 21%] contributor/api/ironic.api.controllers.v1.utils reading sources... [ 21%] contributor/api/ironic.api.controllers.v1.versions reading sources... [ 22%] contributor/api/ironic.api.controllers.v1.volume reading sources... [ 22%] contributor/api/ironic.api.controllers.v1.volume_connector reading sources... [ 22%] contributor/api/ironic.api.controllers.v1.volume_target reading sources... [ 22%] contributor/api/ironic.api.controllers.version reading sources... [ 23%] contributor/api/ironic.api.functions reading sources... [ 23%] contributor/api/ironic.api.hooks reading sources... [ 23%] contributor/api/ironic.api.method reading sources... [ 23%] contributor/api/ironic.api.middleware reading sources... [ 24%] contributor/api/ironic.api.middleware.auth_public_routes reading sources... [ 24%] contributor/api/ironic.api.middleware.json_ext reading sources... [ 24%] contributor/api/ironic.api.middleware.parsable_error reading sources... [ 24%] contributor/api/ironic.api.wsgi reading sources... [ 25%] contributor/api/ironic.cmd reading sources... [ 25%] contributor/api/ironic.cmd.api reading sources... [ 25%] contributor/api/ironic.cmd.conductor reading sources... [ 25%] contributor/api/ironic.cmd.dbsync reading sources... [ 26%] contributor/api/ironic.cmd.singleprocess reading sources... [ 26%] contributor/api/ironic.cmd.status reading sources... [ 26%] contributor/api/ironic.common reading sources... [ 26%] contributor/api/ironic.common.args reading sources... [ 27%] contributor/api/ironic.common.boot_devices reading sources... [ 27%] contributor/api/ironic.common.boot_modes reading sources... [ 27%] contributor/api/ironic.common.cinder reading sources... [ 27%] contributor/api/ironic.common.components reading sources... [ 28%] contributor/api/ironic.common.config reading sources... [ 28%] contributor/api/ironic.common.context reading sources... [ 28%] contributor/api/ironic.common.dhcp_factory reading sources... [ 28%] contributor/api/ironic.common.driver_factory reading sources... [ 29%] contributor/api/ironic.common.exception reading sources... [ 29%] contributor/api/ironic.common.faults reading sources... [ 29%] contributor/api/ironic.common.fsm reading sources... [ 30%] contributor/api/ironic.common.glance_service reading sources... [ 30%] contributor/api/ironic.common.glance_service.image_service reading sources... [ 30%] contributor/api/ironic.common.glance_service.service_utils reading sources... [ 30%] contributor/api/ironic.common.hash_ring reading sources... [ 31%] contributor/api/ironic.common.i18n reading sources... [ 31%] contributor/api/ironic.common.image_service reading sources... [ 31%] contributor/api/ironic.common.images reading sources... [ 31%] contributor/api/ironic.common.indicator_states reading sources... [ 32%] contributor/api/ironic.common.keystone reading sources... [ 32%] contributor/api/ironic.common.kickstart_utils reading sources... [ 32%] contributor/api/ironic.common.molds reading sources... [ 32%] contributor/api/ironic.common.network reading sources... [ 33%] contributor/api/ironic.common.neutron reading sources... [ 33%] contributor/api/ironic.common.nova reading sources... [ 33%] contributor/api/ironic.common.policy reading sources... [ 33%] contributor/api/ironic.common.profiler reading sources... [ 34%] contributor/api/ironic.common.pxe_utils reading sources... [ 34%] contributor/api/ironic.common.raid reading sources... [ 34%] contributor/api/ironic.common.release_mappings reading sources... [ 34%] contributor/api/ironic.common.rpc reading sources... [ 35%] contributor/api/ironic.common.rpc_service reading sources... [ 35%] contributor/api/ironic.common.service reading sources... [ 35%] contributor/api/ironic.common.states reading sources... [ 35%] contributor/api/ironic.common.swift reading sources... [ 36%] contributor/api/ironic.common.utils reading sources... [ 36%] contributor/api/ironic.common.wsgi_service reading sources... [ 36%] contributor/api/ironic.conductor reading sources... [ 36%] contributor/api/ironic.conductor.allocations reading sources... [ 37%] contributor/api/ironic.conductor.base_manager reading sources... [ 37%] contributor/api/ironic.conductor.cleaning reading sources... [ 37%] contributor/api/ironic.conductor.deployments reading sources... [ 37%] contributor/api/ironic.conductor.manager reading sources... [ 38%] contributor/api/ironic.conductor.notification_utils reading sources... [ 38%] contributor/api/ironic.conductor.periodics reading sources... [ 38%] contributor/api/ironic.conductor.rpcapi reading sources... [ 38%] contributor/api/ironic.conductor.steps reading sources... [ 39%] contributor/api/ironic.conductor.task_manager reading sources... [ 39%] contributor/api/ironic.conductor.utils reading sources... [ 39%] contributor/api/ironic.conductor.verify reading sources... [ 40%] contributor/api/ironic.conf reading sources... [ 40%] contributor/api/ironic.conf.agent reading sources... [ 40%] contributor/api/ironic.conf.anaconda reading sources... [ 40%] contributor/api/ironic.conf.ansible reading sources... [ 41%] contributor/api/ironic.conf.api reading sources... [ 41%] contributor/api/ironic.conf.audit reading sources... [ 41%] contributor/api/ironic.conf.auth reading sources... [ 41%] contributor/api/ironic.conf.cinder reading sources... [ 42%] contributor/api/ironic.conf.conductor reading sources... [ 42%] contributor/api/ironic.conf.console reading sources... [ 42%] contributor/api/ironic.conf.database reading sources... [ 42%] contributor/api/ironic.conf.default reading sources... [ 43%] contributor/api/ironic.conf.deploy reading sources... [ 43%] contributor/api/ironic.conf.dhcp reading sources... [ 43%] contributor/api/ironic.conf.dnsmasq reading sources... [ 43%] contributor/api/ironic.conf.drac reading sources... [ 44%] contributor/api/ironic.conf.glance reading sources... [ 44%] contributor/api/ironic.conf.healthcheck reading sources... [ 44%] contributor/api/ironic.conf.ibmc reading sources... [ 44%] contributor/api/ironic.conf.ilo reading sources... [ 45%] contributor/api/ironic.conf.inspector reading sources... [ 45%] contributor/api/ironic.conf.ipmi reading sources... [ 45%] contributor/api/ironic.conf.irmc reading sources... [ 45%] contributor/api/ironic.conf.metrics reading sources... [ 46%] contributor/api/ironic.conf.metrics_statsd reading sources... [ 46%] contributor/api/ironic.conf.molds reading sources... [ 46%] contributor/api/ironic.conf.neutron reading sources... [ 46%] contributor/api/ironic.conf.nova reading sources... [ 47%] contributor/api/ironic.conf.opts reading sources... [ 47%] contributor/api/ironic.conf.pxe reading sources... [ 47%] contributor/api/ironic.conf.redfish reading sources... [ 47%] contributor/api/ironic.conf.service_catalog reading sources... [ 48%] contributor/api/ironic.conf.snmp reading sources... [ 48%] contributor/api/ironic.conf.swift reading sources... [ 48%] contributor/api/ironic.conf.xclarity reading sources... [ 48%] contributor/api/ironic.db reading sources... [ 49%] contributor/api/ironic.db.api reading sources... [ 49%] contributor/api/ironic.db.migration reading sources... [ 49%] contributor/api/ironic.db.sqlalchemy reading sources... [ 50%] contributor/api/ironic.db.sqlalchemy.api reading sources... [ 50%] contributor/api/ironic.db.sqlalchemy.migration reading sources... [ 50%] contributor/api/ironic.db.sqlalchemy.models reading sources... [ 50%] contributor/api/ironic.dhcp reading sources... [ 51%] contributor/api/ironic.dhcp.base reading sources... [ 51%] contributor/api/ironic.dhcp.dnsmasq reading sources... [ 51%] contributor/api/ironic.dhcp.neutron reading sources... [ 51%] contributor/api/ironic.dhcp.none reading sources... [ 52%] contributor/api/ironic.drivers reading sources... [ 52%] contributor/api/ironic.drivers.base reading sources... [ 52%] contributor/api/ironic.drivers.drac reading sources... [ 52%] contributor/api/ironic.drivers.fake_hardware reading sources... [ 53%] contributor/api/ironic.drivers.generic reading sources... [ 53%] contributor/api/ironic.drivers.hardware_type reading sources... [ 53%] contributor/api/ironic.drivers.ibmc reading sources... [ 53%] contributor/api/ironic.drivers.ilo reading sources... [ 54%] contributor/api/ironic.drivers.intel_ipmi reading sources... [ 54%] contributor/api/ironic.drivers.ipmi reading sources... [ 54%] contributor/api/ironic.drivers.irmc reading sources... [ 54%] contributor/api/ironic.drivers.modules reading sources... [ 55%] contributor/api/ironic.drivers.modules.agent reading sources... [ 55%] contributor/api/ironic.drivers.modules.agent_base reading sources... [ 55%] contributor/api/ironic.drivers.modules.agent_client reading sources... [ 55%] contributor/api/ironic.drivers.modules.agent_power reading sources... [ 56%] contributor/api/ironic.drivers.modules.ansible reading sources... [ 56%] contributor/api/ironic.drivers.modules.ansible.deploy reading sources... [ 56%] contributor/api/ironic.drivers.modules.boot_mode_utils reading sources... [ 56%] contributor/api/ironic.drivers.modules.console_utils reading sources... [ 57%] contributor/api/ironic.drivers.modules.deploy_utils reading sources... [ 57%] contributor/api/ironic.drivers.modules.drac reading sources... [ 57%] contributor/api/ironic.drivers.modules.drac.bios reading sources... [ 57%] contributor/api/ironic.drivers.modules.drac.boot reading sources... [ 58%] contributor/api/ironic.drivers.modules.drac.common reading sources... [ 58%] contributor/api/ironic.drivers.modules.drac.inspect reading sources... [ 58%] contributor/api/ironic.drivers.modules.drac.job reading sources... [ 58%] contributor/api/ironic.drivers.modules.drac.management reading sources... [ 59%] contributor/api/ironic.drivers.modules.drac.power reading sources... [ 59%] contributor/api/ironic.drivers.modules.drac.raid reading sources... [ 59%] contributor/api/ironic.drivers.modules.drac.utils reading sources... [ 60%] contributor/api/ironic.drivers.modules.drac.vendor_passthru reading sources... [ 60%] contributor/api/ironic.drivers.modules.fake reading sources... [ 60%] contributor/api/ironic.drivers.modules.ibmc reading sources... [ 60%] contributor/api/ironic.drivers.modules.ibmc.management reading sources... [ 61%] contributor/api/ironic.drivers.modules.ibmc.mappings reading sources... [ 61%] contributor/api/ironic.drivers.modules.ibmc.power reading sources... [ 61%] contributor/api/ironic.drivers.modules.ibmc.raid reading sources... [ 61%] contributor/api/ironic.drivers.modules.ibmc.utils reading sources... [ 62%] contributor/api/ironic.drivers.modules.ibmc.vendor reading sources... [ 62%] contributor/api/ironic.drivers.modules.ilo reading sources... [ 62%] contributor/api/ironic.drivers.modules.ilo.bios reading sources... [ 62%] contributor/api/ironic.drivers.modules.ilo.boot reading sources... [ 63%] contributor/api/ironic.drivers.modules.ilo.common reading sources... [ 63%] contributor/api/ironic.drivers.modules.ilo.console reading sources... [ 63%] contributor/api/ironic.drivers.modules.ilo.firmware_processor reading sources... [ 63%] contributor/api/ironic.drivers.modules.ilo.inspect reading sources... [ 64%] contributor/api/ironic.drivers.modules.ilo.management reading sources... [ 64%] contributor/api/ironic.drivers.modules.ilo.power reading sources... [ 64%] contributor/api/ironic.drivers.modules.ilo.raid reading sources... [ 64%] contributor/api/ironic.drivers.modules.ilo.vendor reading sources... [ 65%] contributor/api/ironic.drivers.modules.image_cache reading sources... [ 65%] contributor/api/ironic.drivers.modules.image_utils reading sources... [ 65%] contributor/api/ironic.drivers.modules.inspect_utils reading sources... [ 65%] contributor/api/ironic.drivers.modules.inspector reading sources... [ 66%] contributor/api/ironic.drivers.modules.intel_ipmi reading sources... [ 66%] contributor/api/ironic.drivers.modules.intel_ipmi.management reading sources... [ 66%] contributor/api/ironic.drivers.modules.ipmitool reading sources... [ 66%] contributor/api/ironic.drivers.modules.ipxe reading sources... [ 67%] contributor/api/ironic.drivers.modules.irmc reading sources... [ 67%] contributor/api/ironic.drivers.modules.irmc.bios reading sources... [ 67%] contributor/api/ironic.drivers.modules.irmc.boot reading sources... [ 67%] contributor/api/ironic.drivers.modules.irmc.common reading sources... [ 68%] contributor/api/ironic.drivers.modules.irmc.inspect reading sources... [ 68%] contributor/api/ironic.drivers.modules.irmc.management reading sources... [ 68%] contributor/api/ironic.drivers.modules.irmc.power reading sources... [ 68%] contributor/api/ironic.drivers.modules.irmc.raid reading sources... [ 69%] contributor/api/ironic.drivers.modules.network reading sources... [ 69%] contributor/api/ironic.drivers.modules.network.common reading sources... [ 69%] contributor/api/ironic.drivers.modules.network.flat reading sources... [ 70%] contributor/api/ironic.drivers.modules.network.neutron reading sources... [ 70%] contributor/api/ironic.drivers.modules.network.noop reading sources... [ 70%] contributor/api/ironic.drivers.modules.noop reading sources... [ 70%] contributor/api/ironic.drivers.modules.noop_mgmt reading sources... [ 71%] contributor/api/ironic.drivers.modules.pxe reading sources... [ 71%] contributor/api/ironic.drivers.modules.pxe_base reading sources... [ 71%] contributor/api/ironic.drivers.modules.ramdisk reading sources... [ 71%] contributor/api/ironic.drivers.modules.redfish reading sources... [ 72%] contributor/api/ironic.drivers.modules.redfish.bios reading sources... [ 72%] contributor/api/ironic.drivers.modules.redfish.boot reading sources... [ 72%] contributor/api/ironic.drivers.modules.redfish.firmware_utils reading sources... [ 72%] contributor/api/ironic.drivers.modules.redfish.inspect reading sources... [ 73%] contributor/api/ironic.drivers.modules.redfish.management reading sources... [ 73%] contributor/api/ironic.drivers.modules.redfish.power reading sources... [ 73%] contributor/api/ironic.drivers.modules.redfish.raid reading sources... [ 73%] contributor/api/ironic.drivers.modules.redfish.utils reading sources... [ 74%] contributor/api/ironic.drivers.modules.redfish.vendor reading sources... [ 74%] contributor/api/ironic.drivers.modules.snmp reading sources... [ 74%] contributor/api/ironic.drivers.modules.storage reading sources... [ 74%] contributor/api/ironic.drivers.modules.storage.cinder reading sources... [ 75%] contributor/api/ironic.drivers.modules.storage.external reading sources... [ 75%] contributor/api/ironic.drivers.modules.storage.noop reading sources... [ 75%] contributor/api/ironic.drivers.modules.xclarity reading sources... [ 75%] contributor/api/ironic.drivers.modules.xclarity.common reading sources... [ 76%] contributor/api/ironic.drivers.modules.xclarity.management reading sources... [ 76%] contributor/api/ironic.drivers.modules.xclarity.power reading sources... [ 76%] contributor/api/ironic.drivers.redfish reading sources... [ 76%] contributor/api/ironic.drivers.snmp reading sources... [ 77%] contributor/api/ironic.drivers.utils reading sources... [ 77%] contributor/api/ironic.drivers.xclarity reading sources... [ 77%] contributor/api/ironic.objects reading sources... [ 77%] contributor/api/ironic.objects.allocation reading sources... [ 78%] contributor/api/ironic.objects.base reading sources... [ 78%] contributor/api/ironic.objects.bios reading sources... [ 78%] contributor/api/ironic.objects.chassis reading sources... [ 78%] contributor/api/ironic.objects.conductor reading sources... [ 79%] contributor/api/ironic.objects.deploy_template reading sources... [ 79%] contributor/api/ironic.objects.deployment reading sources... [ 79%] contributor/api/ironic.objects.fields reading sources... [ 80%] contributor/api/ironic.objects.indirection reading sources... [ 80%] contributor/api/ironic.objects.node reading sources... [ 80%] contributor/api/ironic.objects.node_history reading sources... [ 80%] contributor/api/ironic.objects.notification reading sources... [ 81%] contributor/api/ironic.objects.port reading sources... [ 81%] contributor/api/ironic.objects.portgroup reading sources... [ 81%] contributor/api/ironic.objects.trait reading sources... [ 81%] contributor/api/ironic.objects.volume_connector reading sources... [ 82%] contributor/api/ironic.objects.volume_target reading sources... [ 82%] contributor/api/ironic.version reading sources... [ 82%] contributor/api/modules reading sources... [ 82%] contributor/architecture reading sources... [ 83%] contributor/bios_develop reading sources... [ 83%] contributor/bugs reading sources... [ 83%] contributor/community reading sources... [ 83%] contributor/contributing reading sources... [ 84%] contributor/debug-ci-failures reading sources... [ 84%] contributor/deploy-steps reading sources... [ 84%] contributor/dev-quickstart reading sources... [ 84%] contributor/drivers reading sources... [ 85%] contributor/faq reading sources... [ 85%] contributor/governance reading sources... [ 85%] contributor/index reading sources... [ 85%] contributor/ironic-boot-from-volume reading sources... [ 86%] contributor/ironic-multitenant-networking reading sources... [ 86%] contributor/jobs-description reading sources... [ 86%] contributor/notifications reading sources... [ 86%] contributor/osprofiler-support reading sources... [ 87%] contributor/rbac-testing reading sources... [ 87%] contributor/releasing reading sources... [ 87%] contributor/rolling-upgrades reading sources... [ 87%] contributor/states reading sources... [ 88%] contributor/third-party-ci reading sources... [ 88%] contributor/vendor-passthru reading sources... [ 88%] contributor/vision reading sources... [ 88%] contributor/vision-reflection reading sources... [ 89%] contributor/webapi reading sources... [ 89%] contributor/webapi-version-history reading sources... [ 89%] index reading sources... [ 90%] install/advanced reading sources... [ 90%] install/configdrive reading sources... [ 90%] install/configure-cleaning reading sources... [ 90%] install/configure-compute reading sources... [ 91%] install/configure-glance-images reading sources... [ 91%] install/configure-glance-swift reading sources... [ 91%] install/configure-identity reading sources... [ 91%] install/configure-integration reading sources... [ 92%] install/configure-ipmi reading sources... [ 92%] install/configure-ipv6-networking reading sources... [ 92%] install/configure-networking reading sources... [ 92%] install/configure-nova-flavors reading sources... [ 93%] install/configure-pxe reading sources... [ 93%] install/configure-tenant-networks reading sources... [ 93%] install/creating-images reading sources... [ 93%] install/deploy-ramdisk reading sources... [ 94%] install/enabling-drivers reading sources... [ 94%] install/enabling-https reading sources... [ 94%] install/enrollment reading sources... [ 94%] install/get_started reading sources... [ 95%] install/index reading sources... [ 95%] install/install reading sources... [ 95%] install/install-obs reading sources... [ 95%] install/install-rdo reading sources... [ 96%] install/install-ubuntu reading sources... [ 96%] install/next-steps reading sources... [ 96%] install/refarch/common reading sources... [ 96%] install/refarch/index reading sources... [ 97%] install/refarch/small-cloud-trusted-tenants reading sources... [ 97%] install/setup-drivers reading sources... [ 97%] install/standalone reading sources... [ 97%] install/standalone/configure reading sources... [ 98%] install/standalone/deploy reading sources... [ 98%] install/standalone/enrollment reading sources... [ 98%] install/troubleshooting reading sources... [ 98%] user/architecture reading sources... [ 99%] user/creating-images reading sources... [ 99%] user/deploy reading sources... [ 99%] user/index reading sources... [100%] user/states /build/reproducible-path/ironic-21.1.0/doc/source/admin/agent-power.rst:62: ERROR: Unknown interpreted text role "ironic-inspector-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/api-audit-support.rst:19: ERROR: Unknown interpreted text role "keystonemiddleware-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/console.rst:238: ERROR: Unknown interpreted text role "nova-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/drivers/ansible.rst:10: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/drivers/ansible.rst:53: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/drivers/ilo.rst:142: ERROR: Unknown interpreted text role "ironic-inspector-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/drivers/ilo.rst:407: ERROR: Unknown interpreted text role "glance-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/drivers/ipa.rst:14: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/drivers/ipa.rst:47: ERROR: Unknown interpreted text role "swift-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/drivers/irmc.rst:61: ERROR: Unknown interpreted text role "ironic-inspector-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/fast-track.rst:54: ERROR: Unknown interpreted text role "ironic-inspector-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/hardware-burn-in.rst:16: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/index.rst:73: ERROR: Unknown interpreted text role "ironic-ui-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/inspection.rst:124: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/inspection.rst:147: ERROR: Unknown interpreted text role "ironic-inspector-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/interfaces/deploy.rst:146: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/metrics.rst:90: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/metrics.rst:99: ERROR: Unknown interpreted text role "ironic-lib-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/node-deployment.rst:88: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/node-deployment.rst:168: ERROR: Unknown interpreted text role "os-traits-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/node-multitenancy.rst:128: ERROR: Unknown interpreted text role "metalsmith-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/raid.rst:495: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/security.rst:268: ERROR: Unknown interpreted text role "ironic-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/troubleshooting.rst:168: ERROR: Unknown interpreted text role "nova-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/troubleshooting.rst:590: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/admin/upgrade-to-hardware-types.rst:217: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/contributor/contributing.rst:42: ERROR: Unknown interpreted text role "bifrost-doc". /build/reproducible-path/ironic-21.1.0/doc/source/contributor/contributing.rst:43: ERROR: Unknown interpreted text role "ironic-inspector-doc". /build/reproducible-path/ironic-21.1.0/doc/source/contributor/contributing.rst:44: ERROR: Unknown interpreted text role "ironic-lib-doc". /build/reproducible-path/ironic-21.1.0/doc/source/contributor/contributing.rst:45: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/contributor/contributing.rst:46: ERROR: Unknown interpreted text role "python-ironicclient-doc". /build/reproducible-path/ironic-21.1.0/doc/source/contributor/contributing.rst:47: ERROR: Unknown interpreted text role "python-ironic-inspector-client-doc". /build/reproducible-path/ironic-21.1.0/doc/source/contributor/deploy-steps.rst:84: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/contributor/deploy-steps.rst:113: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/contributor/dev-quickstart.rst:124: ERROR: Unknown interpreted text role "oslotest-doc". /build/reproducible-path/ironic-21.1.0/doc/source/contributor/faq.rst:140: ERROR: Unknown interpreted text role "oslo.reports-doc". /build/reproducible-path/ironic-21.1.0/doc/source/contributor/notifications.rst:7: ERROR: Unknown interpreted text role "oslo.messaging-doc". /build/reproducible-path/ironic-21.1.0/doc/source/contributor/notifications.rst:66: ERROR: Unknown interpreted text role "oslo.versionedobjects-doc". /build/reproducible-path/ironic-21.1.0/doc/source/contributor/osprofiler-support.rst:41: ERROR: Unknown interpreted text role "osprofiler-doc". /build/reproducible-path/ironic-21.1.0/doc/source/contributor/osprofiler-support.rst:105: ERROR: Unknown interpreted text role "osprofiler-doc". /build/reproducible-path/ironic-21.1.0/doc/source/contributor/webapi.rst:24: ERROR: Unknown interpreted text role "nova-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/configure-glance-swift.rst:56: ERROR: Unknown interpreted text role "swift-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/configure-identity.rst:51: ERROR: Unknown interpreted text role "keystone-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/configure-identity.rst:75: ERROR: Unknown interpreted text role "python-openstackclient-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/configure-identity.rst:75: ERROR: Unknown interpreted text role "keystone-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/configure-networking.rst:11: ERROR: Unknown interpreted text role "networking-baremetal-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/configure-networking.rst:17: ERROR: Unknown interpreted text role "neutron-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/configure-nova-flavors.rst:33: ERROR: Unknown interpreted text role "python-openstackclient-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/configure-tenant-networks.rst:134: ERROR: Unknown interpreted text role "neutron-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/deploy-ramdisk.rst:6: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/deploy-ramdisk.rst:10: ERROR: Unknown interpreted text role "ironic-python-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/enabling-drivers.rst:95: ERROR: Unknown interpreted text role "ironic-inspector-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/enabling-https.rst:21: ERROR: Unknown interpreted text role "swift-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/enabling-https.rst:33: ERROR: Unknown interpreted text role "glance-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/enabling-https.rst:43: ERROR: Unknown interpreted text role "glance-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/enabling-https.rst:56: ERROR: Unknown interpreted text role "glance-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/enrollment.rst:329: ERROR: Unknown interpreted text role "nova-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/get_started.rst:39: ERROR: Unknown interpreted text role "oslo.messaging-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/get_started.rst:124: ERROR: Unknown interpreted text role "python-ironicclient-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/get_started.rst:128: ERROR: Unknown interpreted text role "ironic-ui-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/get_started.rst:132: ERROR: Unknown interpreted text role "ironic-inspector-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/get_started.rst:140: ERROR: Unknown interpreted text role "bifrost-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/refarch/small-cloud-trusted-tenants.rst:25: ERROR: Unknown interpreted text role "nova-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/refarch/small-cloud-trusted-tenants.rst:27: ERROR: Unknown interpreted text role "neutron-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/refarch/small-cloud-trusted-tenants.rst:29: ERROR: Unknown interpreted text role "glance-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/refarch/small-cloud-trusted-tenants.rst:33: ERROR: Unknown interpreted text role "cinder-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/refarch/small-cloud-trusted-tenants.rst:35: ERROR: Unknown interpreted text role "ironic-inspector-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/refarch/small-cloud-trusted-tenants.rst:52: ERROR: Unknown interpreted text role "nova-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/refarch/small-cloud-trusted-tenants.rst:52: ERROR: Unknown interpreted text role "cinder-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/refarch/small-cloud-trusted-tenants.rst:172: ERROR: Unknown interpreted text role "networking-baremetal-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/refarch/small-cloud-trusted-tenants.rst:175: ERROR: Unknown interpreted text role "ironic-neutron-agent-doc". /build/reproducible-path/ironic-21.1.0/doc/source/install/standalone/configure.rst:112: ERROR: Unknown interpreted text role "python-ironicclient-doc". /build/reproducible-path/ironic-21.1.0/doc/source/user/deploy.rst:285: ERROR: Unknown interpreted text role "python-ironicclient-doc". looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done writing output... [ 0%] admin/adoption writing output... [ 0%] admin/agent-power writing output... [ 0%] admin/agent-token writing output... [ 1%] admin/anaconda-deploy-interface writing output... [ 1%] admin/api-audit-support writing output... [ 1%] admin/bios writing output... [ 1%] admin/boot-from-volume writing output... [ 2%] admin/building-windows-images writing output... [ 2%] admin/cleaning writing output... [ 2%] admin/conductor-groups writing output... [ 2%] admin/console writing output... [ 3%] admin/deploy-steps writing output... [ 3%] admin/dhcp-less writing output... [ 3%] admin/drivers writing output... [ 3%] admin/drivers/ansible writing output... [ 4%] admin/drivers/fake writing output... [ 4%] admin/drivers/ibmc writing output... [ 4%] admin/drivers/idrac writing output... [ 4%] admin/drivers/ilo writing output... [ 5%] admin/drivers/intel-ipmi writing output... [ 5%] admin/drivers/ipa writing output... [ 5%] admin/drivers/ipmitool writing output... [ 5%] admin/drivers/irmc writing output... [ 6%] admin/drivers/redfish writing output... [ 6%] admin/drivers/snmp writing output... [ 6%] admin/drivers/xclarity writing output... [ 6%] admin/fast-track writing output... [ 7%] admin/gmr writing output... [ 7%] admin/hardware-burn-in writing output... [ 7%] admin/index writing output... [ 7%] admin/inspection writing output... [ 8%] admin/interfaces/boot writing output... [ 8%] admin/interfaces/deploy writing output... [ 8%] admin/metrics writing output... [ 8%] admin/multitenancy writing output... [ 9%] admin/node-deployment writing output... [ 9%] admin/node-multitenancy writing output... [ 9%] admin/notifications writing output... [ 10%] admin/portgroups writing output... [ 10%] admin/power-sync writing output... [ 10%] admin/radosgw writing output... [ 10%] admin/raid writing output... [ 11%] admin/ramdisk-boot writing output... [ 11%] admin/rescue writing output... [ 11%] admin/retirement writing output... [ 11%] admin/secure-rbac writing output... [ 12%] admin/security writing output... [ 12%] admin/troubleshooting writing output... [ 12%] admin/tuning writing output... [ 12%] admin/upgrade-guide writing output... [ 13%] admin/upgrade-to-hardware-types writing output... [ 13%] admin/vendor-passthru writing output... [ 13%] cli/index writing output... [ 13%] cli/ironic-dbsync writing output... [ 14%] cli/ironic-status writing output... [ 14%] configuration/config writing output... [ 14%] configuration/index writing output... [ 14%] configuration/policy writing output... [ 15%] configuration/sample-config writing output... [ 15%] configuration/sample-policy writing output... [ 15%] contributor/adding-new-job writing output... [ 15%] contributor/api/ironic writing output... [ 16%] contributor/api/ironic.api writing output... [ 16%] contributor/api/ironic.api.app writing output... [ 16%] contributor/api/ironic.api.config writing output... [ 16%] contributor/api/ironic.api.controllers writing output... [ 17%] contributor/api/ironic.api.controllers.base writing output... [ 17%] contributor/api/ironic.api.controllers.link writing output... [ 17%] contributor/api/ironic.api.controllers.root writing output... [ 17%] contributor/api/ironic.api.controllers.v1 writing output... [ 18%] contributor/api/ironic.api.controllers.v1.allocation writing output... [ 18%] contributor/api/ironic.api.controllers.v1.bios writing output... [ 18%] contributor/api/ironic.api.controllers.v1.chassis writing output... [ 18%] contributor/api/ironic.api.controllers.v1.collection writing output... [ 19%] contributor/api/ironic.api.controllers.v1.conductor writing output... [ 19%] contributor/api/ironic.api.controllers.v1.deploy_template writing output... [ 19%] contributor/api/ironic.api.controllers.v1.driver writing output... [ 20%] contributor/api/ironic.api.controllers.v1.event writing output... [ 20%] contributor/api/ironic.api.controllers.v1.node writing output... [ 20%] contributor/api/ironic.api.controllers.v1.notification_utils writing output... [ 20%] contributor/api/ironic.api.controllers.v1.port writing output... [ 21%] contributor/api/ironic.api.controllers.v1.portgroup writing output... [ 21%] contributor/api/ironic.api.controllers.v1.ramdisk writing output... [ 21%] contributor/api/ironic.api.controllers.v1.utils writing output... [ 21%] contributor/api/ironic.api.controllers.v1.versions writing output... [ 22%] contributor/api/ironic.api.controllers.v1.volume writing output... [ 22%] contributor/api/ironic.api.controllers.v1.volume_connector writing output... [ 22%] contributor/api/ironic.api.controllers.v1.volume_target writing output... [ 22%] contributor/api/ironic.api.controllers.version writing output... [ 23%] contributor/api/ironic.api.functions writing output... [ 23%] contributor/api/ironic.api.hooks writing output... [ 23%] contributor/api/ironic.api.method writing output... [ 23%] contributor/api/ironic.api.middleware writing output... [ 24%] contributor/api/ironic.api.middleware.auth_public_routes writing output... [ 24%] contributor/api/ironic.api.middleware.json_ext writing output... [ 24%] contributor/api/ironic.api.middleware.parsable_error writing output... [ 24%] contributor/api/ironic.api.wsgi writing output... [ 25%] contributor/api/ironic.cmd writing output... [ 25%] contributor/api/ironic.cmd.api writing output... [ 25%] contributor/api/ironic.cmd.conductor writing output... [ 25%] contributor/api/ironic.cmd.dbsync writing output... [ 26%] contributor/api/ironic.cmd.singleprocess writing output... [ 26%] contributor/api/ironic.cmd.status writing output... [ 26%] contributor/api/ironic.common writing output... [ 26%] contributor/api/ironic.common.args writing output... [ 27%] contributor/api/ironic.common.boot_devices writing output... [ 27%] contributor/api/ironic.common.boot_modes writing output... [ 27%] contributor/api/ironic.common.cinder writing output... [ 27%] contributor/api/ironic.common.components writing output... [ 28%] contributor/api/ironic.common.config writing output... [ 28%] contributor/api/ironic.common.context writing output... [ 28%] contributor/api/ironic.common.dhcp_factory writing output... [ 28%] contributor/api/ironic.common.driver_factory writing output... [ 29%] contributor/api/ironic.common.exception writing output... [ 29%] contributor/api/ironic.common.faults writing output... [ 29%] contributor/api/ironic.common.fsm writing output... [ 30%] contributor/api/ironic.common.glance_service writing output... [ 30%] contributor/api/ironic.common.glance_service.image_service writing output... [ 30%] contributor/api/ironic.common.glance_service.service_utils writing output... [ 30%] contributor/api/ironic.common.hash_ring writing output... [ 31%] contributor/api/ironic.common.i18n writing output... [ 31%] contributor/api/ironic.common.image_service writing output... [ 31%] contributor/api/ironic.common.images writing output... [ 31%] contributor/api/ironic.common.indicator_states writing output... [ 32%] contributor/api/ironic.common.keystone writing output... [ 32%] contributor/api/ironic.common.kickstart_utils writing output... [ 32%] contributor/api/ironic.common.molds writing output... [ 32%] contributor/api/ironic.common.network writing output... [ 33%] contributor/api/ironic.common.neutron writing output... [ 33%] contributor/api/ironic.common.nova writing output... [ 33%] contributor/api/ironic.common.policy writing output... [ 33%] contributor/api/ironic.common.profiler writing output... [ 34%] contributor/api/ironic.common.pxe_utils writing output... [ 34%] contributor/api/ironic.common.raid writing output... [ 34%] contributor/api/ironic.common.release_mappings writing output... [ 34%] contributor/api/ironic.common.rpc writing output... [ 35%] contributor/api/ironic.common.rpc_service writing output... [ 35%] contributor/api/ironic.common.service writing output... [ 35%] contributor/api/ironic.common.states writing output... [ 35%] contributor/api/ironic.common.swift writing output... [ 36%] contributor/api/ironic.common.utils writing output... [ 36%] contributor/api/ironic.common.wsgi_service writing output... [ 36%] contributor/api/ironic.conductor writing output... [ 36%] contributor/api/ironic.conductor.allocations writing output... [ 37%] contributor/api/ironic.conductor.base_manager writing output... [ 37%] contributor/api/ironic.conductor.cleaning writing output... [ 37%] contributor/api/ironic.conductor.deployments writing output... [ 37%] contributor/api/ironic.conductor.manager writing output... [ 38%] contributor/api/ironic.conductor.notification_utils writing output... [ 38%] contributor/api/ironic.conductor.periodics writing output... [ 38%] contributor/api/ironic.conductor.rpcapi writing output... [ 38%] contributor/api/ironic.conductor.steps writing output... [ 39%] contributor/api/ironic.conductor.task_manager writing output... [ 39%] contributor/api/ironic.conductor.utils writing output... [ 39%] contributor/api/ironic.conductor.verify writing output... [ 40%] contributor/api/ironic.conf writing output... [ 40%] contributor/api/ironic.conf.agent writing output... [ 40%] contributor/api/ironic.conf.anaconda writing output... [ 40%] contributor/api/ironic.conf.ansible writing output... [ 41%] contributor/api/ironic.conf.api writing output... [ 41%] contributor/api/ironic.conf.audit writing output... [ 41%] contributor/api/ironic.conf.auth writing output... [ 41%] contributor/api/ironic.conf.cinder writing output... [ 42%] contributor/api/ironic.conf.conductor writing output... [ 42%] contributor/api/ironic.conf.console writing output... [ 42%] contributor/api/ironic.conf.database writing output... [ 42%] contributor/api/ironic.conf.default writing output... [ 43%] contributor/api/ironic.conf.deploy writing output... [ 43%] contributor/api/ironic.conf.dhcp writing output... [ 43%] contributor/api/ironic.conf.dnsmasq writing output... [ 43%] contributor/api/ironic.conf.drac writing output... [ 44%] contributor/api/ironic.conf.glance writing output... [ 44%] contributor/api/ironic.conf.healthcheck writing output... [ 44%] contributor/api/ironic.conf.ibmc writing output... [ 44%] contributor/api/ironic.conf.ilo writing output... [ 45%] contributor/api/ironic.conf.inspector writing output... [ 45%] contributor/api/ironic.conf.ipmi writing output... [ 45%] contributor/api/ironic.conf.irmc writing output... [ 45%] contributor/api/ironic.conf.metrics writing output... [ 46%] contributor/api/ironic.conf.metrics_statsd writing output... [ 46%] contributor/api/ironic.conf.molds writing output... [ 46%] contributor/api/ironic.conf.neutron writing output... [ 46%] contributor/api/ironic.conf.nova writing output... [ 47%] contributor/api/ironic.conf.opts writing output... [ 47%] contributor/api/ironic.conf.pxe writing output... [ 47%] contributor/api/ironic.conf.redfish writing output... [ 47%] contributor/api/ironic.conf.service_catalog writing output... [ 48%] contributor/api/ironic.conf.snmp writing output... [ 48%] contributor/api/ironic.conf.swift writing output... [ 48%] contributor/api/ironic.conf.xclarity writing output... [ 48%] contributor/api/ironic.db writing output... [ 49%] contributor/api/ironic.db.api writing output... [ 49%] contributor/api/ironic.db.migration writing output... [ 49%] contributor/api/ironic.db.sqlalchemy writing output... [ 50%] contributor/api/ironic.db.sqlalchemy.api writing output... [ 50%] contributor/api/ironic.db.sqlalchemy.migration writing output... [ 50%] contributor/api/ironic.db.sqlalchemy.models writing output... [ 50%] contributor/api/ironic.dhcp writing output... [ 51%] contributor/api/ironic.dhcp.base writing output... [ 51%] contributor/api/ironic.dhcp.dnsmasq writing output... [ 51%] contributor/api/ironic.dhcp.neutron writing output... [ 51%] contributor/api/ironic.dhcp.none writing output... [ 52%] contributor/api/ironic.drivers writing output... [ 52%] contributor/api/ironic.drivers.base writing output... [ 52%] contributor/api/ironic.drivers.drac writing output... [ 52%] contributor/api/ironic.drivers.fake_hardware writing output... [ 53%] contributor/api/ironic.drivers.generic writing output... [ 53%] contributor/api/ironic.drivers.hardware_type writing output... [ 53%] contributor/api/ironic.drivers.ibmc writing output... [ 53%] contributor/api/ironic.drivers.ilo writing output... [ 54%] contributor/api/ironic.drivers.intel_ipmi writing output... [ 54%] contributor/api/ironic.drivers.ipmi writing output... [ 54%] contributor/api/ironic.drivers.irmc writing output... [ 54%] contributor/api/ironic.drivers.modules writing output... [ 55%] contributor/api/ironic.drivers.modules.agent writing output... [ 55%] contributor/api/ironic.drivers.modules.agent_base writing output... [ 55%] contributor/api/ironic.drivers.modules.agent_client writing output... [ 55%] contributor/api/ironic.drivers.modules.agent_power writing output... [ 56%] contributor/api/ironic.drivers.modules.ansible writing output... [ 56%] contributor/api/ironic.drivers.modules.ansible.deploy writing output... [ 56%] contributor/api/ironic.drivers.modules.boot_mode_utils writing output... [ 56%] contributor/api/ironic.drivers.modules.console_utils writing output... [ 57%] contributor/api/ironic.drivers.modules.deploy_utils writing output... [ 57%] contributor/api/ironic.drivers.modules.drac writing output... [ 57%] contributor/api/ironic.drivers.modules.drac.bios writing output... [ 57%] contributor/api/ironic.drivers.modules.drac.boot writing output... [ 58%] contributor/api/ironic.drivers.modules.drac.common writing output... [ 58%] contributor/api/ironic.drivers.modules.drac.inspect writing output... [ 58%] contributor/api/ironic.drivers.modules.drac.job writing output... [ 58%] contributor/api/ironic.drivers.modules.drac.management writing output... [ 59%] contributor/api/ironic.drivers.modules.drac.power writing output... [ 59%] contributor/api/ironic.drivers.modules.drac.raid writing output... [ 59%] contributor/api/ironic.drivers.modules.drac.utils writing output... [ 60%] contributor/api/ironic.drivers.modules.drac.vendor_passthru writing output... [ 60%] contributor/api/ironic.drivers.modules.fake writing output... [ 60%] contributor/api/ironic.drivers.modules.ibmc writing output... [ 60%] contributor/api/ironic.drivers.modules.ibmc.management writing output... [ 61%] contributor/api/ironic.drivers.modules.ibmc.mappings writing output... [ 61%] contributor/api/ironic.drivers.modules.ibmc.power writing output... [ 61%] contributor/api/ironic.drivers.modules.ibmc.raid writing output... [ 61%] contributor/api/ironic.drivers.modules.ibmc.utils writing output... [ 62%] contributor/api/ironic.drivers.modules.ibmc.vendor writing output... [ 62%] contributor/api/ironic.drivers.modules.ilo writing output... [ 62%] contributor/api/ironic.drivers.modules.ilo.bios writing output... [ 62%] contributor/api/ironic.drivers.modules.ilo.boot writing output... [ 63%] contributor/api/ironic.drivers.modules.ilo.common writing output... [ 63%] contributor/api/ironic.drivers.modules.ilo.console writing output... [ 63%] contributor/api/ironic.drivers.modules.ilo.firmware_processor writing output... [ 63%] contributor/api/ironic.drivers.modules.ilo.inspect writing output... [ 64%] contributor/api/ironic.drivers.modules.ilo.management writing output... [ 64%] contributor/api/ironic.drivers.modules.ilo.power writing output... [ 64%] contributor/api/ironic.drivers.modules.ilo.raid writing output... [ 64%] contributor/api/ironic.drivers.modules.ilo.vendor writing output... [ 65%] contributor/api/ironic.drivers.modules.image_cache writing output... [ 65%] contributor/api/ironic.drivers.modules.image_utils writing output... [ 65%] contributor/api/ironic.drivers.modules.inspect_utils writing output... [ 65%] contributor/api/ironic.drivers.modules.inspector writing output... [ 66%] contributor/api/ironic.drivers.modules.intel_ipmi writing output... [ 66%] contributor/api/ironic.drivers.modules.intel_ipmi.management writing output... [ 66%] contributor/api/ironic.drivers.modules.ipmitool writing output... [ 66%] contributor/api/ironic.drivers.modules.ipxe writing output... [ 67%] contributor/api/ironic.drivers.modules.irmc writing output... [ 67%] contributor/api/ironic.drivers.modules.irmc.bios writing output... [ 67%] contributor/api/ironic.drivers.modules.irmc.boot writing output... [ 67%] contributor/api/ironic.drivers.modules.irmc.common writing output... [ 68%] contributor/api/ironic.drivers.modules.irmc.inspect writing output... [ 68%] contributor/api/ironic.drivers.modules.irmc.management writing output... [ 68%] contributor/api/ironic.drivers.modules.irmc.power writing output... [ 68%] contributor/api/ironic.drivers.modules.irmc.raid writing output... [ 69%] contributor/api/ironic.drivers.modules.network writing output... [ 69%] contributor/api/ironic.drivers.modules.network.common writing output... [ 69%] contributor/api/ironic.drivers.modules.network.flat writing output... [ 70%] contributor/api/ironic.drivers.modules.network.neutron writing output... [ 70%] contributor/api/ironic.drivers.modules.network.noop writing output... [ 70%] contributor/api/ironic.drivers.modules.noop writing output... [ 70%] contributor/api/ironic.drivers.modules.noop_mgmt writing output... [ 71%] contributor/api/ironic.drivers.modules.pxe writing output... [ 71%] contributor/api/ironic.drivers.modules.pxe_base writing output... [ 71%] contributor/api/ironic.drivers.modules.ramdisk writing output... [ 71%] contributor/api/ironic.drivers.modules.redfish writing output... [ 72%] contributor/api/ironic.drivers.modules.redfish.bios writing output... [ 72%] contributor/api/ironic.drivers.modules.redfish.boot writing output... [ 72%] contributor/api/ironic.drivers.modules.redfish.firmware_utils writing output... [ 72%] contributor/api/ironic.drivers.modules.redfish.inspect writing output... [ 73%] contributor/api/ironic.drivers.modules.redfish.management writing output... [ 73%] contributor/api/ironic.drivers.modules.redfish.power writing output... [ 73%] contributor/api/ironic.drivers.modules.redfish.raid writing output... [ 73%] contributor/api/ironic.drivers.modules.redfish.utils writing output... [ 74%] contributor/api/ironic.drivers.modules.redfish.vendor writing output... [ 74%] contributor/api/ironic.drivers.modules.snmp writing output... [ 74%] contributor/api/ironic.drivers.modules.storage writing output... [ 74%] contributor/api/ironic.drivers.modules.storage.cinder writing output... [ 75%] contributor/api/ironic.drivers.modules.storage.external writing output... [ 75%] contributor/api/ironic.drivers.modules.storage.noop writing output... [ 75%] contributor/api/ironic.drivers.modules.xclarity writing output... [ 75%] contributor/api/ironic.drivers.modules.xclarity.common writing output... [ 76%] contributor/api/ironic.drivers.modules.xclarity.management writing output... [ 76%] contributor/api/ironic.drivers.modules.xclarity.power writing output... [ 76%] contributor/api/ironic.drivers.redfish writing output... [ 76%] contributor/api/ironic.drivers.snmp writing output... [ 77%] contributor/api/ironic.drivers.utils writing output... [ 77%] contributor/api/ironic.drivers.xclarity writing output... [ 77%] contributor/api/ironic.objects writing output... [ 77%] contributor/api/ironic.objects.allocation writing output... [ 78%] contributor/api/ironic.objects.base writing output... [ 78%] contributor/api/ironic.objects.bios writing output... [ 78%] contributor/api/ironic.objects.chassis writing output... [ 78%] contributor/api/ironic.objects.conductor writing output... [ 79%] contributor/api/ironic.objects.deploy_template writing output... [ 79%] contributor/api/ironic.objects.deployment writing output... [ 79%] contributor/api/ironic.objects.fields writing output... [ 80%] contributor/api/ironic.objects.indirection writing output... [ 80%] contributor/api/ironic.objects.node writing output... [ 80%] contributor/api/ironic.objects.node_history writing output... [ 80%] contributor/api/ironic.objects.notification writing output... [ 81%] contributor/api/ironic.objects.port writing output... [ 81%] contributor/api/ironic.objects.portgroup writing output... [ 81%] contributor/api/ironic.objects.trait writing output... [ 81%] contributor/api/ironic.objects.volume_connector writing output... [ 82%] contributor/api/ironic.objects.volume_target writing output... [ 82%] contributor/api/ironic.version writing output... [ 82%] contributor/api/modules writing output... [ 82%] contributor/architecture writing output... [ 83%] contributor/bios_develop writing output... [ 83%] contributor/bugs writing output... [ 83%] contributor/community writing output... [ 83%] contributor/contributing writing output... [ 84%] contributor/debug-ci-failures writing output... [ 84%] contributor/deploy-steps writing output... [ 84%] contributor/dev-quickstart writing output... [ 84%] contributor/drivers writing output... [ 85%] contributor/faq writing output... [ 85%] contributor/governance writing output... [ 85%] contributor/index writing output... [ 85%] contributor/ironic-boot-from-volume writing output... [ 86%] contributor/ironic-multitenant-networking writing output... [ 86%] contributor/jobs-description writing output... [ 86%] contributor/notifications writing output... [ 86%] contributor/osprofiler-support writing output... [ 87%] contributor/rbac-testing writing output... [ 87%] contributor/releasing writing output... [ 87%] contributor/rolling-upgrades writing output... [ 87%] contributor/states writing output... [ 88%] contributor/third-party-ci writing output... [ 88%] contributor/vendor-passthru writing output... [ 88%] contributor/vision writing output... [ 88%] contributor/vision-reflection writing output... [ 89%] contributor/webapi writing output... [ 89%] contributor/webapi-version-history writing output... [ 89%] index writing output... [ 90%] install/advanced writing output... [ 90%] install/configdrive writing output... [ 90%] install/configure-cleaning writing output... [ 90%] install/configure-compute writing output... [ 91%] install/configure-glance-images writing output... [ 91%] install/configure-glance-swift writing output... [ 91%] install/configure-identity writing output... [ 91%] install/configure-integration writing output... [ 92%] install/configure-ipmi writing output... [ 92%] install/configure-ipv6-networking writing output... [ 92%] install/configure-networking writing output... [ 92%] install/configure-nova-flavors writing output... [ 93%] install/configure-pxe writing output... [ 93%] install/configure-tenant-networks writing output... [ 93%] install/creating-images writing output... [ 93%] install/deploy-ramdisk writing output... [ 94%] install/enabling-drivers writing output... [ 94%] install/enabling-https writing output... [ 94%] install/enrollment writing output... [ 94%] install/get_started writing output... [ 95%] install/index writing output... [ 95%] install/install writing output... [ 95%] install/install-obs writing output... [ 95%] install/install-rdo writing output... [ 96%] install/install-ubuntu writing output... [ 96%] install/next-steps writing output... [ 96%] install/refarch/common writing output... [ 96%] install/refarch/index writing output... [ 97%] install/refarch/small-cloud-trusted-tenants writing output... [ 97%] install/setup-drivers writing output... [ 97%] install/standalone writing output... [ 97%] install/standalone/configure writing output... [ 98%] install/standalone/deploy writing output... [ 98%] install/standalone/enrollment writing output... [ 98%] install/troubleshooting writing output... [ 98%] user/architecture writing output... [ 99%] user/creating-images writing output... [ 99%] user/deploy writing output... [ 99%] user/index writing output... [100%] user/states WARNING: Cannot get gitsha from git repository. WARNING: dot command 'dot' cannot be run (needed for graphviz output), check the graphviz_dot setting generating indices... genindex py-modindex done highlighting module code... [ 0%] ironic.api.app highlighting module code... [ 0%] ironic.api.controllers.base highlighting module code... [ 1%] ironic.api.controllers.link highlighting module code... [ 1%] ironic.api.controllers.root highlighting module code... [ 2%] ironic.api.controllers.v1 highlighting module code... [ 2%] ironic.api.controllers.v1.allocation highlighting module code... [ 3%] ironic.api.controllers.v1.bios highlighting module code... [ 3%] ironic.api.controllers.v1.chassis highlighting module code... [ 3%] ironic.api.controllers.v1.collection highlighting module code... [ 4%] ironic.api.controllers.v1.conductor highlighting module code... [ 4%] ironic.api.controllers.v1.deploy_template highlighting module code... [ 5%] ironic.api.controllers.v1.driver highlighting module code... [ 5%] ironic.api.controllers.v1.event highlighting module code... [ 6%] ironic.api.controllers.v1.node highlighting module code... [ 6%] ironic.api.controllers.v1.notification_utils highlighting module code... [ 7%] ironic.api.controllers.v1.port highlighting module code... [ 7%] ironic.api.controllers.v1.portgroup highlighting module code... [ 7%] ironic.api.controllers.v1.ramdisk highlighting module code... [ 8%] ironic.api.controllers.v1.utils highlighting module code... [ 8%] ironic.api.controllers.v1.versions highlighting module code... [ 9%] ironic.api.controllers.v1.volume highlighting module code... [ 9%] ironic.api.controllers.v1.volume_connector highlighting module code... [ 10%] ironic.api.controllers.v1.volume_target highlighting module code... [ 10%] ironic.api.controllers.version highlighting module code... [ 11%] ironic.api.functions highlighting module code... [ 11%] ironic.api.hooks highlighting module code... [ 11%] ironic.api.method highlighting module code... [ 12%] ironic.api.middleware.auth_public_routes highlighting module code... [ 12%] ironic.api.middleware.json_ext highlighting module code... [ 13%] ironic.api.middleware.parsable_error highlighting module code... [ 13%] ironic.api.wsgi highlighting module code... [ 14%] ironic.cmd.api highlighting module code... [ 14%] ironic.cmd.conductor highlighting module code... [ 14%] ironic.cmd.dbsync highlighting module code... [ 15%] ironic.cmd.singleprocess highlighting module code... [ 15%] ironic.cmd.status highlighting module code... [ 16%] ironic.common.args highlighting module code... [ 16%] ironic.common.cinder highlighting module code... [ 17%] ironic.common.config highlighting module code... [ 17%] ironic.common.context highlighting module code... [ 18%] ironic.common.dhcp_factory highlighting module code... [ 18%] ironic.common.driver_factory highlighting module code... [ 18%] ironic.common.exception highlighting module code... [ 19%] ironic.common.fsm highlighting module code... [ 19%] ironic.common.glance_service.image_service highlighting module code... [ 20%] ironic.common.glance_service.service_utils highlighting module code... [ 20%] ironic.common.hash_ring highlighting module code... [ 21%] ironic.common.image_service highlighting module code... [ 21%] ironic.common.images highlighting module code... [ 22%] ironic.common.keystone highlighting module code... [ 22%] ironic.common.kickstart_utils highlighting module code... [ 22%] ironic.common.molds highlighting module code... [ 23%] ironic.common.network highlighting module code... [ 23%] ironic.common.neutron highlighting module code... [ 24%] ironic.common.nova highlighting module code... [ 24%] ironic.common.policy highlighting module code... [ 25%] ironic.common.profiler highlighting module code... [ 25%] ironic.common.pxe_utils highlighting module code... [ 25%] ironic.common.raid highlighting module code... [ 26%] ironic.common.release_mappings highlighting module code... [ 26%] ironic.common.rpc highlighting module code... [ 27%] ironic.common.rpc_service highlighting module code... [ 27%] ironic.common.service highlighting module code... [ 28%] ironic.common.states highlighting module code... [ 28%] ironic.common.swift highlighting module code... [ 29%] ironic.common.utils highlighting module code... [ 29%] ironic.common.wsgi_service highlighting module code... [ 29%] ironic.conductor.allocations highlighting module code... [ 30%] ironic.conductor.base_manager highlighting module code... [ 30%] ironic.conductor.cleaning highlighting module code... [ 31%] ironic.conductor.deployments highlighting module code... [ 31%] ironic.conductor.manager highlighting module code... [ 32%] ironic.conductor.notification_utils highlighting module code... [ 32%] ironic.conductor.periodics highlighting module code... [ 33%] ironic.conductor.rpcapi highlighting module code... [ 33%] ironic.conductor.steps highlighting module code... [ 33%] ironic.conductor.task_manager highlighting module code... [ 34%] ironic.conductor.utils highlighting module code... [ 34%] ironic.conductor.verify highlighting module code... [ 35%] ironic.conf.agent highlighting module code... [ 35%] ironic.conf.anaconda highlighting module code... [ 36%] ironic.conf.ansible highlighting module code... [ 36%] ironic.conf.api highlighting module code... [ 37%] ironic.conf.audit highlighting module code... [ 37%] ironic.conf.auth highlighting module code... [ 37%] ironic.conf.cinder highlighting module code... [ 38%] ironic.conf.conductor highlighting module code... [ 38%] ironic.conf.console highlighting module code... [ 39%] ironic.conf.database highlighting module code... [ 39%] ironic.conf.default highlighting module code... [ 40%] ironic.conf.deploy highlighting module code... [ 40%] ironic.conf.dhcp highlighting module code... [ 40%] ironic.conf.dnsmasq highlighting module code... [ 41%] ironic.conf.drac highlighting module code... [ 41%] ironic.conf.glance highlighting module code... [ 42%] ironic.conf.healthcheck highlighting module code... [ 42%] ironic.conf.ibmc highlighting module code... [ 43%] ironic.conf.ilo highlighting module code... [ 43%] ironic.conf.inspector highlighting module code... [ 44%] ironic.conf.ipmi highlighting module code... [ 44%] ironic.conf.irmc highlighting module code... [ 44%] ironic.conf.metrics highlighting module code... [ 45%] ironic.conf.metrics_statsd highlighting module code... [ 45%] ironic.conf.molds highlighting module code... [ 46%] ironic.conf.neutron highlighting module code... [ 46%] ironic.conf.nova highlighting module code... [ 47%] ironic.conf.opts highlighting module code... [ 47%] ironic.conf.pxe highlighting module code... [ 48%] ironic.conf.redfish highlighting module code... [ 48%] ironic.conf.service_catalog highlighting module code... [ 48%] ironic.conf.snmp highlighting module code... [ 49%] ironic.conf.swift highlighting module code... [ 49%] ironic.conf.xclarity highlighting module code... [ 50%] ironic.db.api highlighting module code... [ 50%] ironic.db.migration highlighting module code... [ 51%] ironic.db.sqlalchemy.api highlighting module code... [ 51%] ironic.db.sqlalchemy.migration highlighting module code... [ 51%] ironic.db.sqlalchemy.models highlighting module code... [ 52%] ironic.dhcp.base highlighting module code... [ 52%] ironic.dhcp.dnsmasq highlighting module code... [ 53%] ironic.dhcp.neutron highlighting module code... [ 53%] ironic.dhcp.none highlighting module code... [ 54%] ironic.drivers.base highlighting module code... [ 54%] ironic.drivers.drac highlighting module code... [ 55%] ironic.drivers.fake_hardware highlighting module code... [ 55%] ironic.drivers.generic highlighting module code... [ 55%] ironic.drivers.hardware_type highlighting module code... [ 56%] ironic.drivers.ibmc highlighting module code... [ 56%] ironic.drivers.ilo highlighting module code... [ 57%] ironic.drivers.intel_ipmi highlighting module code... [ 57%] ironic.drivers.ipmi highlighting module code... [ 58%] ironic.drivers.irmc highlighting module code... [ 58%] ironic.drivers.modules.agent highlighting module code... [ 59%] ironic.drivers.modules.agent_base highlighting module code... [ 59%] ironic.drivers.modules.agent_client highlighting module code... [ 59%] ironic.drivers.modules.agent_power highlighting module code... [ 60%] ironic.drivers.modules.ansible.deploy highlighting module code... [ 60%] ironic.drivers.modules.boot_mode_utils highlighting module code... [ 61%] ironic.drivers.modules.console_utils highlighting module code... [ 61%] ironic.drivers.modules.deploy_utils highlighting module code... [ 62%] ironic.drivers.modules.drac.bios highlighting module code... [ 62%] ironic.drivers.modules.drac.boot highlighting module code... [ 62%] ironic.drivers.modules.drac.common highlighting module code... [ 63%] ironic.drivers.modules.drac.inspect highlighting module code... [ 63%] ironic.drivers.modules.drac.job highlighting module code... [ 64%] ironic.drivers.modules.drac.management highlighting module code... [ 64%] ironic.drivers.modules.drac.power highlighting module code... [ 65%] ironic.drivers.modules.drac.raid highlighting module code... [ 65%] ironic.drivers.modules.drac.utils highlighting module code... [ 66%] ironic.drivers.modules.drac.vendor_passthru highlighting module code... [ 66%] ironic.drivers.modules.fake highlighting module code... [ 66%] ironic.drivers.modules.ibmc.management highlighting module code... [ 67%] ironic.drivers.modules.ibmc.power highlighting module code... [ 67%] ironic.drivers.modules.ibmc.raid highlighting module code... [ 68%] ironic.drivers.modules.ibmc.utils highlighting module code... [ 68%] ironic.drivers.modules.ibmc.vendor highlighting module code... [ 69%] ironic.drivers.modules.ilo.bios highlighting module code... [ 69%] ironic.drivers.modules.ilo.boot highlighting module code... [ 70%] ironic.drivers.modules.ilo.common highlighting module code... [ 70%] ironic.drivers.modules.ilo.console highlighting module code... [ 70%] ironic.drivers.modules.ilo.firmware_processor highlighting module code... [ 71%] ironic.drivers.modules.ilo.inspect highlighting module code... [ 71%] ironic.drivers.modules.ilo.management highlighting module code... [ 72%] ironic.drivers.modules.ilo.power highlighting module code... [ 72%] ironic.drivers.modules.ilo.raid highlighting module code... [ 73%] ironic.drivers.modules.ilo.vendor highlighting module code... [ 73%] ironic.drivers.modules.image_cache highlighting module code... [ 74%] ironic.drivers.modules.image_utils highlighting module code... [ 74%] ironic.drivers.modules.inspect_utils highlighting module code... [ 74%] ironic.drivers.modules.inspector highlighting module code... [ 75%] ironic.drivers.modules.intel_ipmi.management highlighting module code... [ 75%] ironic.drivers.modules.ipmitool highlighting module code... [ 76%] ironic.drivers.modules.ipxe highlighting module code... [ 76%] ironic.drivers.modules.irmc.bios highlighting module code... [ 77%] ironic.drivers.modules.irmc.boot highlighting module code... [ 77%] ironic.drivers.modules.irmc.common highlighting module code... [ 77%] ironic.drivers.modules.irmc.inspect highlighting module code... [ 78%] ironic.drivers.modules.irmc.management highlighting module code... [ 78%] ironic.drivers.modules.irmc.power highlighting module code... [ 79%] ironic.drivers.modules.irmc.raid highlighting module code... [ 79%] ironic.drivers.modules.network.common highlighting module code... [ 80%] ironic.drivers.modules.network.flat highlighting module code... [ 80%] ironic.drivers.modules.network.neutron highlighting module code... [ 81%] ironic.drivers.modules.network.noop highlighting module code... [ 81%] ironic.drivers.modules.noop highlighting module code... [ 81%] ironic.drivers.modules.noop_mgmt highlighting module code... [ 82%] ironic.drivers.modules.pxe highlighting module code... [ 82%] ironic.drivers.modules.pxe_base highlighting module code... [ 83%] ironic.drivers.modules.ramdisk highlighting module code... [ 83%] ironic.drivers.modules.redfish.bios highlighting module code... [ 84%] ironic.drivers.modules.redfish.boot highlighting module code... [ 84%] ironic.drivers.modules.redfish.firmware_utils highlighting module code... [ 85%] ironic.drivers.modules.redfish.inspect highlighting module code... [ 85%] ironic.drivers.modules.redfish.management highlighting module code... [ 85%] ironic.drivers.modules.redfish.power highlighting module code... [ 86%] ironic.drivers.modules.redfish.raid highlighting module code... [ 86%] ironic.drivers.modules.redfish.utils highlighting module code... [ 87%] ironic.drivers.modules.redfish.vendor highlighting module code... [ 87%] ironic.drivers.modules.snmp highlighting module code... [ 88%] ironic.drivers.modules.storage.cinder highlighting module code... [ 88%] ironic.drivers.modules.storage.external highlighting module code... [ 88%] ironic.drivers.modules.storage.noop highlighting module code... [ 89%] ironic.drivers.modules.xclarity.common highlighting module code... [ 89%] ironic.drivers.modules.xclarity.management highlighting module code... [ 90%] ironic.drivers.modules.xclarity.power highlighting module code... [ 90%] ironic.drivers.redfish highlighting module code... [ 91%] ironic.drivers.snmp highlighting module code... [ 91%] ironic.drivers.utils highlighting module code... [ 92%] ironic.drivers.xclarity highlighting module code... [ 92%] ironic.objects highlighting module code... [ 92%] ironic.objects.allocation highlighting module code... [ 93%] ironic.objects.base highlighting module code... [ 93%] ironic.objects.bios highlighting module code... [ 94%] ironic.objects.chassis highlighting module code... [ 94%] ironic.objects.conductor highlighting module code... [ 95%] ironic.objects.deploy_template highlighting module code... [ 95%] ironic.objects.deployment highlighting module code... [ 96%] ironic.objects.fields highlighting module code... [ 96%] ironic.objects.indirection highlighting module code... [ 96%] ironic.objects.node highlighting module code... [ 97%] ironic.objects.node_history highlighting module code... [ 97%] ironic.objects.notification highlighting module code... [ 98%] ironic.objects.port highlighting module code... [ 98%] ironic.objects.portgroup highlighting module code... [ 99%] ironic.objects.trait highlighting module code... [ 99%] ironic.objects.volume_connector highlighting module code... [100%] ironic.objects.volume_target writing additional pages... search done copying images... [ 25%] images/deployment_architecture_2.png copying images... [ 50%] images/logical_architecture.png copying images... [ 75%] images/conceptual_architecture.png copying images... [100%] images/states.svg copying downloadable files... [ 50%] ../_static/ironic.conf.sample copying downloadable files... [100%] ../_static/ironic.policy.yaml.sample copying static files... done copying extra files... done dumping search index in English (code: en)... done dumping object inventory... done build succeeded, 75 warnings. The HTML pages are in debian/ironic-doc/usr/share/doc/ironic-doc/html. mkdir -p /build/reproducible-path/ironic-21.1.0/debian/ironic-doc/usr/share/doc/ironic-doc/html/_static 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/navigation.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/docs.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/toggle.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' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions if [ -e /build/reproducible-path/ironic-21.1.0/debian/CHANGELOG ] ; then \ dh_installchangelogs /build/reproducible-path/ironic-21.1.0/debian/CHANGELOG ; \ else \ dh_installchangelogs ; \ fi make[1]: Leaving directory '/build/reproducible-path/ironic-21.1.0' dh_installdebconf -O--buildsystem=python_distutils dh_systemd_enable -O--buildsystem=python_distutils debian/rules override_dh_python3 make[1]: Entering directory '/build/reproducible-path/ironic-21.1.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh_python3 --shebang=/usr/bin/python3 I: dh_python3 tools:114: replacing shebang in debian/ironic-common/usr/bin/ironic-api-wsgi I: dh_python3 tools:114: replacing shebang in debian/ironic-common/usr/bin/ironic-status I: dh_python3 tools:114: replacing shebang in debian/ironic-common/usr/bin/ironic-dbsync I: dh_python3 tools:114: replacing shebang in debian/ironic-common/usr/bin/ironic I: dh_python3 tools:114: replacing shebang in debian/ironic-common/usr/bin/ironic-rootwrap I: dh_python3 tools:114: replacing shebang in debian/ironic-common/usr/bin/ironic-conductor I: dh_python3 tools:114: replacing shebang in debian/ironic-common/usr/bin/ironic-api make[1]: Leaving directory '/build/reproducible-path/ironic-21.1.0' debian/rules override_dh_installinit make[1]: Entering directory '/build/reproducible-path/ironic-21.1.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions # Create the init scripts and systemd unit files from the template set -e ; set -x ; for i in `ls -1 debian/*.init.in` ; do \ MYINIT=`echo $i | sed s/.init.in//` ; \ cp $i $MYINIT.init ; \ 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// + 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// + MYINIT=debian/ironic-conductor + cp debian/ironic-conductor.init.in debian/ironic-conductor.init + cat /usr/share/openstack-pkg-tools/init-script-template + pkgos-gen-systemd-unit debian/ironic-conductor.init.in # If there's a service.in file, use that one instead of the generated one set -e ; set -x ; for i in `ls -1 debian/*.service.in`; do \ MYPKG=`echo $i | sed s/.service.in//` ; \ cp $MYPKG.service.in $MYPKG.service ; \ done + 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 \ MYINIT=`echo $i | sed s/.init.in/.service.in/` ; \ if ! [ -e $MYINIT ] ; then \ pkgos-gen-systemd-unit $i ; \ fi \ done + ls debian/ironic-api.init.in debian/ironic-conductor.init.in + sed s/.init.in/.service.in/ + echo debian/ironic-api.init.in + MYINIT=debian/ironic-api.service.in + [ -e debian/ironic-api.service.in ] + pkgos-gen-systemd-unit debian/ironic-api.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 ] + 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' dh_systemd_start -O--buildsystem=python_distutils dh_installlogrotate -O--buildsystem=python_distutils dh_perl -O--buildsystem=python_distutils dh_link -O--buildsystem=python_distutils dh_strip_nondeterminism -O--buildsystem=python_distutils dh_compress -O--buildsystem=python_distutils dh_fixperms -O--buildsystem=python_distutils dh_missing -O--buildsystem=python_distutils dh_installdeb -O--buildsystem=python_distutils debian/rules override_dh_gencontrol make[1]: Entering directory '/build/reproducible-path/ironic-21.1.0' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions if dpkg-vendor --derives-from ubuntu ; then \ dh_gencontrol -- -T/build/reproducible-path/ironic-21.1.0/debian/ubuntu_control_vars ; \ 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: 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 'python3-ironic' in '../python3-ironic_21.1.0-3_all.deb'. dpkg-deb: building package 'ironic-conductor' in '../ironic-conductor_21.1.0-3_all.deb'. dpkg-deb: building package 'ironic-api' in '../ironic-api_21.1.0-3_all.deb'. dpkg-deb: building package 'ironic-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_armhf.buildinfo dpkg-genchanges --build=binary -O../ironic_21.1.0-3_armhf.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-source: info: using options from ironic-21.1.0/debian/source/options: --extend-diff-ignore=^[.]gitreview$ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration 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/15078 and its subdirectories I: Current time: Sat Jan 6 02:02:22 -12 2024 I: pbuilder-time-stamp: 1704549742 Sat Jan 6 14:02:53 UTC 2024 I: 1st build successful. Starting 2nd build on remote node virt32c-armhf-rb.debian.net. Sat Jan 6 14:02:53 UTC 2024 I: Preparing to do remote build '2' on virt32c-armhf-rb.debian.net. Sat Jan 6 14:26:16 UTC 2024 I: Deleting $TMPDIR on virt32c-armhf-rb.debian.net. Sat Jan 6 14:26:18 UTC 2024 I: ironic_21.1.0-3_armhf.changes: Format: 1.8 Date: Fri, 14 Apr 2023 13:48:42 +0200 Source: ironic Binary: ironic-api ironic-common ironic-conductor ironic-doc python3-ironic Architecture: all Version: 1:21.1.0-3 Distribution: unstable Urgency: medium Maintainer: Debian OpenStack Changed-By: Thomas Goirand Description: ironic-api - bare metal hypervisor API for OpenStack - API server ironic-common - bare metal hypervisor API for OpenStack - common files ironic-conductor - bare metal hypervisor API for OpenStack - conductor ironic-doc - bare metal hypervisor API for OpenStack - doc python3-ironic - bare metal hypervisor API for OpenStack - Python lib Changes: ironic (1:21.1.0-3) unstable; urgency=medium . * Build-depends on openstack-pkg-tools (>= 123~). Checksums-Sha1: 9c42a79003b8865720b740a70b8333a71e0da906 19660 ironic-api_21.1.0-3_all.deb 8debadd25b942036a463ff416837d02f192bf7b3 59564 ironic-common_21.1.0-3_all.deb 542af49a0bbc0de56617627d4e81ff7556fe9a91 7448 ironic-conductor_21.1.0-3_all.deb e9b7ac8f5fe86b8c0469494477b482652d98cd00 2872416 ironic-doc_21.1.0-3_all.deb cbd28d64cc0b91f3fc43d2ca0f1030c1f0807628 20794 ironic_21.1.0-3_armhf.buildinfo 94363e38914632232a1a52ce00a9feff8b3730f7 936600 python3-ironic_21.1.0-3_all.deb Checksums-Sha256: 75fb4da320967d0dafb26087200d8566b66448d77202129e4edba0f31115f58a 19660 ironic-api_21.1.0-3_all.deb 71346c116726b9f0f536d1d38fa94a776d69da4af0b7f0e7bb2005d0459d1ba0 59564 ironic-common_21.1.0-3_all.deb 42a36a35ed8d684edc5b4da0c6ccf28cfe6d6d9a958aee4ce9356933d1168ef7 7448 ironic-conductor_21.1.0-3_all.deb 3f41af2353b149c2daef663c3790cc2558e2151639014bf45614631617a8fb81 2872416 ironic-doc_21.1.0-3_all.deb e8cb7e71b9fb56688dd96407e4cda05026609c93c4026ffeee0be50202da301c 20794 ironic_21.1.0-3_armhf.buildinfo 856a8a385873c4c7f000a4ee941d54a7b929e5e92287615a52c6c054f2e8fa18 936600 python3-ironic_21.1.0-3_all.deb Files: 5e51be3ca269a286fbecbcce62a3be47 19660 net optional ironic-api_21.1.0-3_all.deb 129ed33cfe9519e3e437a12a12528d24 59564 net optional ironic-common_21.1.0-3_all.deb 6c5644b40db6bbc87df047dc471c311e 7448 net optional ironic-conductor_21.1.0-3_all.deb f5cb2c7b63bd44e7d9c5f4ab5c2d6d73 2872416 doc optional ironic-doc_21.1.0-3_all.deb 2b72d7d4f58f1d035859c222e7baa52b 20794 net optional ironic_21.1.0-3_armhf.buildinfo 40a4bccde1b3bfb820912c94056f67eb 936600 python optional python3-ironic_21.1.0-3_all.deb Sat Jan 6 14:26:24 UTC 2024 I: diffoscope 240 will be used to compare the two builds: # Profiling output for: /usr/bin/diffoscope --timeout 7200 --html /srv/reproducible-results/rbuild-debian/r-b-build.aem6cFeL/ironic_21.1.0-3.diffoscope.html --text /srv/reproducible-results/rbuild-debian/r-b-build.aem6cFeL/ironic_21.1.0-3.diffoscope.txt --json /srv/reproducible-results/rbuild-debian/r-b-build.aem6cFeL/ironic_21.1.0-3.diffoscope.json --profile=- /srv/reproducible-results/rbuild-debian/r-b-build.aem6cFeL/b1/ironic_21.1.0-3_armhf.changes /srv/reproducible-results/rbuild-debian/r-b-build.aem6cFeL/b2/ironic_21.1.0-3_armhf.changes ## close_archive (total time: 0.000s) 0.000s 10 calls diffoscope.comparators.xz.XzContainer 0.000s 2 calls diffoscope.comparators.deb.DebContainer 0.000s 8 calls diffoscope.comparators.tar.TarContainer 0.000s 2 calls diffoscope.comparators.deb.DebTarContainer ## command (total time: 5.743s) 2.885s 16 calls diff 1.224s 11 calls js-beautify 1.034s 12 calls xz 0.466s 22 calls html2text 0.066s 42 calls cmp (internal) 0.029s 4 calls cmp 0.029s 4 calls cmp (external) 0.010s 2 calls gzip ## compare_files (cumulative) (total time: 145.197s) 30.323s 1 call abc.DotChangesFile 30.189s 2 calls abc.DebFile 30.033s 4 calls abc.XzFile 28.716s 2 calls abc.DebDataTarFile 22.402s 1 call abc.JavaScriptFile 2.279s 2 calls abc.HtmlFile 0.603s 2 calls abc.TextFile 0.338s 1 call abc.GzipFile 0.249s 2 calls abc.TarFile 0.065s 2 calls abc.Md5sumsFile ## container_extract (total time: 1.930s) 1.035s 12 calls diffoscope.comparators.xz.XzContainer 0.832s 2176 calls diffoscope.comparators.deb.DebTarContainer 0.033s 16 calls diffoscope.comparators.deb.DebContainer 0.019s 24 calls diffoscope.comparators.tar.TarContainer 0.010s 2 calls diffoscope.comparators.gzip.GzipContainer ## diff (total time: 0.040s) 0.040s 26 calls linediff ## has_same_content_as (total time: 0.100s) 0.040s 7 calls diffoscope.comparators.utils.libarchive.LibarchiveSymlink 0.027s 17 calls abc.TextFile 0.021s 5 calls abc.DebFile 0.004s 2 calls abc.DebDataTarFile 0.004s 1 call abc.JavaScriptFile 0.001s 2 calls abc.HtmlFile 0.001s 4 calls abc.Md5sumsFile 0.001s 4 calls abc.XzFile 0.001s 2 calls abc.TarFile 0.000s 1 call abc.DotChangesFile 0.000s 1 call abc.GzipFile ## main (total time: 31.451s) 31.340s 2 calls outputs 0.111s 1 call cleanup ## open_archive (total time: 0.000s) 0.000s 8 calls diffoscope.comparators.tar.TarContainer 0.000s 12 calls diffoscope.comparators.xz.XzContainer 0.000s 4 calls diffoscope.comparators.deb.DebContainer 0.000s 4 calls diffoscope.comparators.deb.DebTarContainer 0.000s 2 calls diffoscope.comparators.gzip.GzipContainer ## output (total time: 0.201s) 0.195s 1 call html 0.005s 1 call text 0.001s 1 call json ## recognizes (total time: 0.723s) 0.297s 1772 calls diffoscope.comparators.utils.libarchive.LibarchiveMember 0.220s 12 calls diffoscope.comparators.binary.FilesystemFile 0.111s 560 calls diffoscope.comparators.utils.archive.ArchiveMember 0.094s 270 calls diffoscope.comparators.debian.DebControlMember 0.001s 32 calls abc.Md5sumsFile 0.000s 10 calls abc.DotChangesFile 0.000s 28 calls diffoscope.comparators.utils.libarchive.LibarchiveSymlink ## specialize (total time: 0.451s) 0.451s 46 calls specialize Sat Jan 6 14:26:56 UTC 2024 E: ironic failed to build reproducibly in bookworm on armhf. Sat Jan 6 14:26:56 UTC 2024 E: diffoscope 240 found issues, please check https://tests.reproducible-builds.org/debian/dbd/bookworm/armhf/ironic_21.1.0-3.diffoscope.html Sat Jan 6 14:27:12 UTC 2024 I: Submitting .buildinfo files to external archives: Sat Jan 6 14:27:12 UTC 2024 I: Submitting 24K b1/ironic_21.1.0-3_armhf.buildinfo.asc Sat Jan 6 14:27:14 UTC 2024 I: Submitting 24K b2/ironic_21.1.0-3_armhf.buildinfo.asc Sat Jan 6 14:27:15 UTC 2024 I: Done submitting .buildinfo files to http://buildinfo.debian.net/api/submit. Sat Jan 6 14:27:15 UTC 2024 I: Done submitting .buildinfo files. Sat Jan 6 14:27:15 UTC 2024 I: Removing signed ironic_21.1.0-3_armhf.buildinfo.asc files: removed './b1/ironic_21.1.0-3_armhf.buildinfo.asc' removed './b2/ironic_21.1.0-3_armhf.buildinfo.asc'